annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedHeightSoundingWidthFacet.java @ 8098:09725b65955a

Add new and simplyfied SedimentLoadFacet The SedimentLoadFacet is intended to work with the Measurement stations. It uses the same mechanismn to access the Mesurement station values as the calculation does. SedimentLoadLS values need a different facet that will come soon.
author Andre Heinecke <andre.heinecke@intevation.de>
date Fri, 15 Aug 2014 18:27:19 +0200
parents 2f88a98d9aae
children 99912f51468d
rev   line source
7995
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package org.dive4elements.river.artifacts.model.minfo;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import java.util.List;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import org.dive4elements.artifacts.Artifact;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import org.dive4elements.artifacts.CallContext;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 import org.dive4elements.river.artifacts.D4EArtifact;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 import org.dive4elements.river.artifacts.access.BedHeightAccess;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 import org.dive4elements.river.artifacts.model.BlackboardDataFacet;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import org.dive4elements.river.artifacts.model.FacetTypes;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 import org.dive4elements.river.model.BedHeightSingle;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 import org.dive4elements.river.model.BedHeightSingleValue;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 public class BedHeightSoundingWidthFacet
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 extends BlackboardDataFacet
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 implements FacetTypes
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18 {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 public BedHeightSoundingWidthFacet(String name, String description) {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 this.name = name;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 this.description = description;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 this.index = 0;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 this.metaData.put("X", "chart.longitudinal.section.xaxis.label");
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 this.metaData.put("Y", "chart.bedheight.height.yaxis.label");
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 /**
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 * Returns the data this facet requires.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 *
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 * @param artifact the owner artifact.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 * @param context the CallContext (ignored).
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 *
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 * @return the data.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 */
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 @Override
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 public Object getData(Artifact artifact, CallContext context) {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 BedHeightAccess access = new BedHeightAccess((D4EArtifact)artifact);
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 /* Former doc (from BedHeightAccess):
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 * Return a {@link List} of {@link BedHeightSingleValue}s
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 * at the range of the artifact
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 * @return List of {@link BedHeightSingleValue}s */
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 BedHeightSingle single = BedHeightSingle.getBedHeightSingleById(
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 access.getHeightId());
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 List<BedHeightSingleValue> bedheightValues =
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 BedHeightSingleValue.getBedHeightSingleValues(
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 single,
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 access.getFrom(),
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 access.getTo());
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 double[][] values = new double[2][bedheightValues.size()];
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 int i = 0;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 for (BedHeightSingleValue bedheightValue : bedheightValues) {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 values[0][i] = bedheightValue.getStation();
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 values[1][i] = bedheightValue.getSoundingWidth();
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 i++;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 return values;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59 /**
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 * Create a deep copy of this Facet.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 * @return a deep copy.
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 */
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 @Override
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 public BedHeightSoundingWidthFacet deepCopy() {
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 BedHeightSoundingWidthFacet copy =
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 new BedHeightSoundingWidthFacet(name, description);
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 copy.set(this);
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 return copy;
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 }
2f88a98d9aae Added missing facet.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 }

http://dive4elements.wald.intevation.org