comparison artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java @ 7227:744df5a03337

Use diagram configuration and there processors to define compatible facets in loaded data.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 02 Oct 2013 19:24:43 +0200
parents 8ab618dda850
children 3f141505077b
comparison
equal deleted inserted replaced
7226:8ab618dda850 7227:744df5a03337
9 package org.dive4elements.river.exports; 9 package org.dive4elements.river.exports;
10 10
11 import java.util.HashMap; 11 import java.util.HashMap;
12 import java.util.Map; 12 import java.util.Map;
13 13
14 import org.apache.log4j.Logger;
14 import org.dive4elements.river.utils.Pair; 15 import org.dive4elements.river.utils.Pair;
16 import org.dive4elements.river.artifacts.D4EArtifact.FacetFilter;
15 17
16 public class GeneratorLookup 18 public class GeneratorLookup
19 implements FacetFilter
17 { 20 {
21 private static Logger log = Logger.getLogger(GeneratorLookup.class);
22
18 private Map<String, Pair<Class<OutGenerator>, Object>> generators; 23 private Map<String, Pair<Class<OutGenerator>, Object>> generators;
19 24
20 public GeneratorLookup() { 25 public GeneratorLookup() {
21 generators = new HashMap<String, Pair<Class<OutGenerator>, Object>>(); 26 generators = new HashMap<String, Pair<Class<OutGenerator>, Object>>();
22 } 27 }
32 } 37 }
33 38
34 public Pair<Class<OutGenerator>, Object> getGenerator(String outName) { 39 public Pair<Class<OutGenerator>, Object> getGenerator(String outName) {
35 return generators.get(outName); 40 return generators.get(outName);
36 } 41 }
42
43 @Override
44 public boolean accept(String outName, String facetName) {
45
46 Pair<Class<OutGenerator>, Object> pair = generators.get(outName);
47 if (pair == null) {
48 return true;
49 }
50
51 try {
52 Class<OutGenerator> clazz = pair.getA();
53 OutGenerator generator = clazz.newInstance();
54
55 return generator instanceof FacetFilter
56 ? ((FacetFilter)generator).accept(outName, facetName)
57 : true;
58 }
59 catch (InstantiationException ie) {
60 log.error(ie, ie);
61 }
62 catch (IllegalAccessException iae) {
63 log.error(iae, iae);
64 }
65 return true;
66 }
37 } 67 }
38 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 68 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org