comparison artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java @ 7228:3f141505077b

Global facet filtering with bound to out: The DiagramAttributes implements the FacetFilter and not the Generators.
author Sascha L. Teichmann <teichmann@intevation.de>
date Wed, 02 Oct 2013 23:11:59 +0200
parents 744df5a03337
children 9667900536b6
comparison
equal deleted inserted replaced
7227:744df5a03337 7228:3f141505077b
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;
15 import org.dive4elements.river.utils.Pair; 14 import org.dive4elements.river.utils.Pair;
16 import org.dive4elements.river.artifacts.D4EArtifact.FacetFilter; 15 import org.dive4elements.river.artifacts.D4EArtifact.FacetFilter;
17 16
18 public class GeneratorLookup 17 public class GeneratorLookup
19 implements FacetFilter 18 implements FacetFilter
20 { 19 {
21 private static Logger log = Logger.getLogger(GeneratorLookup.class);
22
23 private Map<String, Pair<Class<OutGenerator>, Object>> generators; 20 private Map<String, Pair<Class<OutGenerator>, Object>> generators;
24 21
25 public GeneratorLookup() { 22 public GeneratorLookup() {
26 generators = new HashMap<String, Pair<Class<OutGenerator>, Object>>(); 23 generators = new HashMap<String, Pair<Class<OutGenerator>, Object>>();
27 } 24 }
46 Pair<Class<OutGenerator>, Object> pair = generators.get(outName); 43 Pair<Class<OutGenerator>, Object> pair = generators.get(outName);
47 if (pair == null) { 44 if (pair == null) {
48 return true; 45 return true;
49 } 46 }
50 47
51 try { 48 Object ff = pair.getB();
52 Class<OutGenerator> clazz = pair.getA(); 49 return ff instanceof FacetFilter
53 OutGenerator generator = clazz.newInstance(); 50 ? ((FacetFilter)ff).accept(outName, facetName)
54 51 : true;
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 } 52 }
67 } 53 }
68 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : 54 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org