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;

http://dive4elements.wald.intevation.org