annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/BedDiameterDataFacet.java @ 6259:06ee8e2f8b0b

Removed obsolete member and minor code style.
author Raimund Renkert <rrenkert@intevation.de>
date Tue, 11 Jun 2013 09:16:41 +0200
parents 267119b38779
children a56fe3bc6700
rev   line source
6250
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package org.dive4elements.river.artifacts.model.minfo;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import gnu.trove.TDoubleArrayList;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import org.apache.log4j.Logger;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import org.dive4elements.artifactdatabase.state.Facet;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 import org.dive4elements.artifacts.Artifact;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 import org.dive4elements.artifacts.CallContext;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 import org.dive4elements.river.artifacts.D4EArtifact;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import org.dive4elements.river.artifacts.access.BedQualityAccess;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11 import org.dive4elements.river.artifacts.model.DataFacet;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 public class BedDiameterDataFacet
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 extends DataFacet
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 private static final Logger logger = Logger.getLogger(BedDiameterDataFacet.class);
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 public BedDiameterDataFacet() {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 public BedDiameterDataFacet(
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 int ndx,
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 String name,
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 String description,
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26 ComputeType type,
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 String stateId,
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 String hash
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 ) {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 super(ndx, name, description, type, hash, stateId);
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 public Object getData(Artifact artifact, CallContext context) {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 D4EArtifact d4e = (D4EArtifact) artifact;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 BedQualityAccess access = new BedQualityAccess(d4e, context);
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 int ndx = getIndex() & 7;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 int top = (getIndex() >> 3) & 1;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 int diam = (getIndex() >> 4);
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 String diameter = "";
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 switch (diam) {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 case 1: diameter = "d10"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 case 2: diameter = "d16"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 case 3: diameter = "d20"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 case 4: diameter = "d25"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 case 5: diameter = "d30"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 case 6: diameter = "d40"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 case 7: diameter = "d50"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 case 8: diameter = "d60"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 case 9: diameter = "d70"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 case 10: diameter = "d75"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 case 11: diameter = "d80"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 case 12: diameter = "d84"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 case 13: diameter = "d90"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 case 14: diameter = "dmin"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
55 case 15: diameter = "dmax"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
56 case 16: diameter = "dm"; break;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
57 default: return null;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
58 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
59
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
60 QualityMeasurements measurements =
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
61 QualityMeasurementFactory.getBedMeasurements(
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
62 access.getRiver(),
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
63 access.getFrom(),
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
64 access.getTo(),
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
65 access.getDateRanges().get(ndx).getFrom(),
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
66 access.getDateRanges().get(ndx).getTo());
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
67 TDoubleArrayList kms = new TDoubleArrayList();
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
68 TDoubleArrayList data = new TDoubleArrayList();
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
69 for (QualityMeasurement m : measurements.getMeasurements()) {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
70 if (top == 1 && m.getDepth1() == 0d && m.getDepth2() <= 0.3) {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
71 kms.add(m.getKm());
6259
06ee8e2f8b0b Removed obsolete member and minor code style.
Raimund Renkert <rrenkert@intevation.de>
parents: 6250
diff changeset
72 data.add(m.getDiameter(diameter) * 1000);
6250
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
73 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
74 else if (top == 0 && m.getDepth1() > 0d && m.getDepth2() <= 0.5){
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
75 kms.add(m.getKm());
6259
06ee8e2f8b0b Removed obsolete member and minor code style.
Raimund Renkert <rrenkert@intevation.de>
parents: 6250
diff changeset
76 data.add(m.getDiameter(diameter) * 1000);
6250
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
77 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
78 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
79 BedDiameterData bdd = new BedDiameterData(diameter, kms, data);
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
80 return bdd;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
81 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
82
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
83 /** Copy deeply. */
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
84 @Override
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
85 public Facet deepCopy() {
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
86 BedDiameterDataFacet copy = new BedDiameterDataFacet();
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
87 copy.set(this);
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
88 copy.type = type;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
89 copy.hash = hash;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
90 copy.stateId = stateId;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
91 return copy;
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
92 }
267119b38779 Added container and facet for bed diameter measurements.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
93 }

http://dive4elements.wald.intevation.org