Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/AreaFacet.java @ 7714:0ee6aa11649b
(issue1574) Add area handling for correction curves
author | Andre Heinecke <aheinecke@intevation.de> |
---|---|
date | Fri, 20 Dec 2013 12:40:08 +0100 |
parents | af13ceeba52a |
children | e4606eae8ea5 |
comparison
equal
deleted
inserted
replaced
7713:dfe3f78fd3e5 | 7714:0ee6aa11649b |
---|---|
62 // All compatible facets should provide their data | 62 // All compatible facets should provide their data |
63 // under the key (Artifact-UUID + Facet-Index). | 63 // under the key (Artifact-UUID + Facet-Index). |
64 AreaArtifact artifact = (AreaArtifact) art; | 64 AreaArtifact artifact = (AreaArtifact) art; |
65 Object lowerData = null; | 65 Object lowerData = null; |
66 Object upperData = null; | 66 Object upperData = null; |
67 String stemFacetName = null; | 67 String lowerFacetName = null; |
68 String upperFacetName = null; | |
68 | 69 |
69 List<DataProvider> providers = context. | 70 List<DataProvider> providers = context. |
70 getDataProvider(artifact.getLowerDPKey()); | 71 getDataProvider(artifact.getLowerDPKey()); |
71 if (providers.size() < 1) { | 72 if (providers.size() < 1) { |
72 logger.warn("No 'lower' provider given for area [" + | 73 logger.warn("No 'lower' provider given for area [" + |
75 else { | 76 else { |
76 lowerData = providers.get(0).provideData( | 77 lowerData = providers.get(0).provideData( |
77 artifact.getLowerDPKey(), null, context); | 78 artifact.getLowerDPKey(), null, context); |
78 logger.debug("'Lower' data provider key for area [" + | 79 logger.debug("'Lower' data provider key for area [" + |
79 artifact.getLowerDPKey() + "]"); | 80 artifact.getLowerDPKey() + "]"); |
80 stemFacetName = artifact.getLowerDPKey().split(":")[1]; | 81 lowerFacetName = artifact.getLowerDPKey().split(":")[1]; |
81 } | 82 } |
82 | 83 |
83 providers = context.getDataProvider(artifact.getUpperDPKey()); | 84 providers = context.getDataProvider(artifact.getUpperDPKey()); |
84 if (providers.size() < 1) { | 85 if (providers.size() < 1) { |
85 logger.warn("No 'upper' provider given for area [" + | 86 logger.warn("No 'upper' provider given for area [" + |
88 else { | 89 else { |
89 upperData = providers.get(0).provideData( | 90 upperData = providers.get(0).provideData( |
90 artifact.getUpperDPKey(), null, context); | 91 artifact.getUpperDPKey(), null, context); |
91 logger.debug("'Upper' data provider key for area [" + | 92 logger.debug("'Upper' data provider key for area [" + |
92 artifact.getUpperDPKey() + "]"); | 93 artifact.getUpperDPKey() + "]"); |
93 if (stemFacetName == null) { | 94 upperFacetName = artifact.getUpperDPKey().split(":")[1]; |
94 stemFacetName = artifact.getUpperDPKey().split(":")[1]; | |
95 } | |
96 } | 95 } |
97 | 96 |
98 if (upperData == null && lowerData == null) { | 97 if (upperData == null && lowerData == null) { |
99 logger.warn("Not given 'upper' and 'lower' for area"); | 98 logger.warn("Not given 'upper' and 'lower' for area"); |
100 } | 99 } |
101 | 100 |
102 return new Data(stemFacetName, lowerData, upperData, | 101 return new Data(upperFacetName, lowerFacetName, lowerData, upperData, |
103 Boolean.valueOf(artifact.getPaintBetween())); | 102 Boolean.valueOf(artifact.getPaintBetween())); |
104 } | 103 } |
105 | 104 |
106 | 105 |
107 /** Do a deep copy. */ | 106 /** Do a deep copy. */ |
111 copy.set(this); | 110 copy.set(this); |
112 return copy; | 111 return copy; |
113 } | 112 } |
114 | 113 |
115 /** Result data bundle. */ | 114 /** Result data bundle. */ |
116 public class Data { | 115 public static class Data { |
117 protected String rootFacetName; | 116 protected String upperFacetName; |
117 protected String lowerFacetName; | |
118 protected Object upperData; | 118 protected Object upperData; |
119 protected Object lowerData; | 119 protected Object lowerData; |
120 protected boolean doPaintBetween; | 120 protected boolean doPaintBetween; |
121 | 121 |
122 /** Create a new result data bundle. */ | 122 /** Create a new result data bundle. */ |
123 public Data(String rootName, Object low, Object up, boolean between) { | 123 public Data(String upperFacetName, String lowerFacetName, Object low, Object up, boolean between) { |
124 this.rootFacetName = rootName; | |
125 this.lowerData = low; | 124 this.lowerData = low; |
126 this.upperData = up; | 125 this.upperData = up; |
127 this.doPaintBetween = between; | 126 this.doPaintBetween = between; |
127 this.lowerFacetName = lowerFacetName; | |
128 this.upperFacetName = upperFacetName; | |
128 } | 129 } |
129 | 130 |
130 /** Get name of a facet that is involved in area generation | 131 public String getLowerFacetName() { |
131 * to induce type (e.g. longitudinal_section.w -> "W over km"). */ | 132 return this.lowerFacetName; |
132 public String getRootFacetName() { | 133 } |
133 return this.rootFacetName; | 134 |
135 public String getUpperFacetName() { | |
136 return this.upperFacetName; | |
134 } | 137 } |
135 | 138 |
136 /** Get data for 'upper' curve of area. */ | 139 /** Get data for 'upper' curve of area. */ |
137 public Object getUpperData() { | 140 public Object getUpperData() { |
138 return this.upperData; | 141 return this.upperData; |