annotate artifacts/src/main/java/org/dive4elements/river/exports/GeneratorLookup.java @ 8856:5e38e2924c07 3.2.x

Fix code style.
author Tom Gottfried <tom@intevation.de>
date Thu, 18 Jan 2018 20:12:01 +0100
parents c87c87544cc6
children
rev   line source
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
1 /* Copyright (C) 2011, 2012, 2013 by Bundesanstalt für Gewässerkunde
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
2 * Software engineering by Intevation GmbH
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
3 *
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
4 * This file is Free Software under the GNU AGPL (>=v3)
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
5 * and comes with ABSOLUTELY NO WARRANTY! Check out the
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
6 * documentation coming with Dive4Elements River for details.
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
7 */
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
8
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
9 package org.dive4elements.river.exports;
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
10
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
11 import java.util.HashMap;
8254
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
12 import java.util.List;
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
13 import java.util.Map;
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
14
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
15 import org.dive4elements.artifacts.ContextInjector;
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
16
7227
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
17 import org.dive4elements.river.artifacts.D4EArtifact.FacetFilter;
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
18
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
19 public class GeneratorLookup
7227
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
20 implements FacetFilter
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
21 {
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
22 public static final class Item {
8254
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
23 private Class<OutGenerator> generator;
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
24 private Object ctx;
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
25 private List<ContextInjector> cis;
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
26
8856
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8254
diff changeset
27 public Item(
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8254
diff changeset
28 Class<OutGenerator> generator,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8254
diff changeset
29 Object ctx,
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8254
diff changeset
30 List<ContextInjector> cis
5e38e2924c07 Fix code style.
Tom Gottfried <tom@intevation.de>
parents: 8254
diff changeset
31 ) {
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
32 this.generator = generator;
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
33 this.ctx = ctx;
8254
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
34 this.cis = cis;
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
35 }
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
36
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
37 public Class<OutGenerator> getGenerator() {
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
38 return generator;
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
39 }
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
40
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
41 public Object getContext() {
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
42 return ctx;
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
43 }
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
44
8254
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
45 public List<ContextInjector> getContextInjectors() {
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
46 return cis;
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
47 }
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
48 } // class Item
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
49
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
50 private Map<String, Item> generators;
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
51
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
52 public GeneratorLookup() {
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
53 generators = new HashMap<String, Item>();
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
54 }
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
55
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
56 public void putGenerator(
8254
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
57 String outName,
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
58 Class<OutGenerator> generatorClass,
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
59 Object ctx,
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
60 List<ContextInjector> cis
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
61 ) {
8254
c87c87544cc6 Made call context injectors a list of comma separated classes.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 8219
diff changeset
62 Item item = new Item(generatorClass, ctx, cis);
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
63 generators.put(outName, item);
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
64 }
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
65
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
66 public Item getGenerator(String outName) {
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
67 return generators.get(outName);
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
68 }
7227
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
69
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
70 @Override
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
71 public boolean accept(String outName, String facetName) {
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
72
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
73 Item item = generators.get(outName);
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
74 if (item == null) {
7227
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
75 return true;
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
76 }
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
77
8219
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
78 Object ctx = item.getContext();
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
79 return ctx instanceof FacetFilter
9667900536b6 Added context injector to generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7228
diff changeset
80 ? ((FacetFilter)ctx).accept(outName, facetName)
7228
3f141505077b Global facet filtering with bound to out: The DiagramAttributes implements the FacetFilter and not the Generators.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7227
diff changeset
81 : true;
7227
744df5a03337 Use diagram configuration and there processors to define compatible facets in loaded data.
Sascha L. Teichmann <teichmann@intevation.de>
parents: 7226
diff changeset
82 }
7226
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
83 }
8ab618dda850 Made lookup for generators a class of its own. First step to use it as a compat filter for facets, too.
Sascha L. Teichmann <teichmann@intevation.de>
parents:
diff changeset
84 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org