comparison artifacts/src/main/java/org/dive4elements/river/artifacts/context/RiverContext.java @ 8219:9667900536b6

Added context injector to generators.
author Sascha L. Teichmann <teichmann@intevation.de>
date Mon, 08 Sep 2014 13:17:49 +0200
parents e4606eae8ea5
children 1d3d61c8f596
comparison
equal deleted inserted replaced
8218:ed8c1a0b4cfb 8219:9667900536b6
14 14
15 import org.dive4elements.artifactdatabase.DefaultArtifactContext; 15 import org.dive4elements.artifactdatabase.DefaultArtifactContext;
16 import org.dive4elements.artifacts.CallContext; 16 import org.dive4elements.artifacts.CallContext;
17 import org.dive4elements.river.exports.GeneratorLookup; 17 import org.dive4elements.river.exports.GeneratorLookup;
18 import org.dive4elements.river.exports.OutGenerator; 18 import org.dive4elements.river.exports.OutGenerator;
19 import org.dive4elements.river.utils.Pair;
20 19
21 20
22 /** 21 /**
23 * This class is used to store application wide information in a global context. 22 * This class is used to store application wide information in a global context.
24 * 23 *
107 106
108 if (generators == null) { 107 if (generators == null) {
109 return null; 108 return null;
110 } 109 }
111 110
112 Pair<Class<OutGenerator>, Object> pair = generators.getGenerator(name); 111 GeneratorLookup.Item item = generators.getGenerator(name);
113 112
114 if (pair == null) { 113 if (item == null) {
115 log.warn("No generator class found for " + name); 114 log.warn("No generator class found for " + name);
116 return null; 115 return null;
117 } 116 }
118 117
119 try { 118 try {
120 Class<OutGenerator> clazz = pair.getA(); 119 Class<OutGenerator> clazz = item.getGenerator();
121 OutGenerator generator = clazz.newInstance(); 120 OutGenerator generator = clazz.newInstance();
122 generator.setup(pair.getB()); 121 generator.setup(item.getContext());
123 return generator; 122 return generator;
124 } 123 }
125 catch (InstantiationException ie) { 124 catch (InstantiationException ie) {
126 log.error(ie, ie); 125 log.error(ie, ie);
127 } 126 }

http://dive4elements.wald.intevation.org