Mercurial > dive4elements > river
comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/AreaFacet.java @ 2104:bb0dede9294f
Implementation towards areas at other than first axis (flys/issue441).
flys-artifacts/trunk@3661 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Felix Wolfsteller <felix.wolfsteller@intevation.de> |
---|---|
date | Thu, 12 Jan 2012 12:29:56 +0000 |
parents | 76cedac30d35 |
children | 5642a83420f2 |
comparison
equal
deleted
inserted
replaced
2103:b9f7ec9bda18 | 2104:bb0dede9294f |
---|---|
55 // All compatible facets should provide their data | 55 // All compatible facets should provide their data |
56 // under the key (Artifact-UUID + Facet-Index). | 56 // under the key (Artifact-UUID + Facet-Index). |
57 AreaArtifact artifact = (AreaArtifact) art; | 57 AreaArtifact artifact = (AreaArtifact) art; |
58 Object lowerData = null; | 58 Object lowerData = null; |
59 Object upperData = null; | 59 Object upperData = null; |
60 String stemFacetName = null; | |
60 | 61 |
61 List<DataProvider> providers = context. | 62 List<DataProvider> providers = context. |
62 getDataProvider(artifact.getLowerDPKey()); | 63 getDataProvider(artifact.getLowerDPKey()); |
63 if (providers.size() < 1) { | 64 if (providers.size() < 1) { |
64 logger.warn("No 'lower' provider given for area [" + | 65 logger.warn("No 'lower' provider given for area [" + |
65 artifact.getLowerDPKey() + "]"); | 66 artifact.getLowerDPKey() + "]"); |
66 } | 67 } |
67 else { | 68 else { |
68 lowerData = providers.get(0).provideData( | 69 lowerData = providers.get(0).provideData( |
69 artifact.getLowerDPKey(), null, context); | 70 artifact.getLowerDPKey(), null, context); |
71 logger.debug("'Lower' data provider key for area [" + | |
72 artifact.getLowerDPKey() + "]"); | |
73 stemFacetName = artifact.getLowerDPKey().split(":")[1]; | |
70 } | 74 } |
71 | 75 |
72 providers = context.getDataProvider(artifact.getUpperDPKey()); | 76 providers = context.getDataProvider(artifact.getUpperDPKey()); |
73 if (providers.size() < 1) { | 77 if (providers.size() < 1) { |
74 logger.warn("No 'upper' provider given for area [" + | 78 logger.warn("No 'upper' provider given for area [" + |
75 artifact.getUpperDPKey() + "]"); | 79 artifact.getUpperDPKey() + "]"); |
76 } | 80 } |
77 else { | 81 else { |
78 upperData = providers.get(0).provideData( | 82 upperData = providers.get(0).provideData( |
79 artifact.getUpperDPKey(), null, context); | 83 artifact.getUpperDPKey(), null, context); |
84 logger.debug("'Upper' data provider key for area [" + | |
85 artifact.getUpperDPKey() + "]"); | |
86 if (stemFacetName == null) { | |
87 stemFacetName = artifact.getUpperDPKey().split(":")[1]; | |
88 } | |
80 } | 89 } |
81 | 90 |
82 if (upperData == null && lowerData == null) { | 91 if (upperData == null && lowerData == null) { |
83 logger.warn("Not given 'upper' and 'lower' for area"); | 92 logger.warn("Not given 'upper' and 'lower' for area"); |
84 } | 93 } |
85 | 94 |
86 return new Object[] {lowerData, | 95 return new Data(stemFacetName, lowerData, upperData, |
87 upperData, | 96 Boolean.valueOf(artifact.getPaintBetween())); |
88 Boolean.valueOf(artifact.getPaintBetween())}; | |
89 } | 97 } |
90 | 98 |
91 | 99 |
92 /** Do a deep copy. */ | 100 /** Do a deep copy. */ |
93 @Override | 101 @Override |
94 public Facet deepCopy() { | 102 public Facet deepCopy() { |
95 AreaFacet copy = new AreaFacet(this.index, this.name, this.description); | 103 AreaFacet copy = new AreaFacet(this.index, this.name, this.description); |
96 copy.set(this); | 104 copy.set(this); |
97 return copy; | 105 return copy; |
98 } | 106 } |
107 | |
108 /** Result data bundle. */ | |
109 public class Data { | |
110 protected String rootFacetName; | |
111 protected Object upperData; | |
112 protected Object lowerData; | |
113 protected boolean doPaintBetween; | |
114 | |
115 /** Create a new result data bundle. */ | |
116 public Data(String rootName, Object low, Object up, boolean between) { | |
117 this.rootFacetName = rootName; | |
118 this.lowerData = low; | |
119 this.upperData = up; | |
120 this.doPaintBetween = between; | |
121 } | |
122 | |
123 /** Get name of a facet that is involved in area generation | |
124 * to induce type (e.g. longitudinal_section.w -> "W over km"). */ | |
125 public String getRootFacetName() { | |
126 return this.rootFacetName; | |
127 } | |
128 | |
129 /** Get data for 'upper' curve of area. */ | |
130 public Object getUpperData() { | |
131 return this.upperData; | |
132 } | |
133 | |
134 /** Get data for 'lower' curve of area. */ | |
135 public Object getLowerData() { | |
136 return this.lowerData; | |
137 } | |
138 | |
139 /** Whether to fill whole area between (in contrast to 'under' | |
140 * or 'over'). */ | |
141 public boolean doPaintBetween() { | |
142 return this.doPaintBetween; | |
143 } | |
144 } | |
99 } | 145 } |
100 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : | 146 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 : |