annotate artifacts/src/main/java/org/dive4elements/river/artifacts/model/minfo/SedimentLoadUnknownFacet.java @ 6665:b7945db8a43b

issue1413: Only show unknown sediment loads of selected unit type. Therefore, adjusted the factory to take the units name. Unfortunately, names in db do not match values of data items. Thus do manual replacing. In Facet and Calculate, take the chosen unit via access and to the string replacement. In Facet, do not transform data (we assume it comes in unit as labeled in the db), and removed the possibility of m3/a-data of unknown yields in a t/a diagram and vice versa.
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Thu, 25 Jul 2013 15:08:13 +0200
parents 4ae1fbaaacdd
children 91c43293e538
rev   line source
6388
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package org.dive4elements.river.artifacts.model.minfo;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import org.apache.log4j.Logger;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 import org.dive4elements.artifactdatabase.state.Facet;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5 import org.dive4elements.artifacts.Artifact;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import org.dive4elements.artifacts.CallContext;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7 import org.dive4elements.river.artifacts.D4EArtifact;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8 import org.dive4elements.river.artifacts.access.SedimentLoadAccess;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 import org.dive4elements.river.artifacts.model.DataFacet;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 import org.dive4elements.river.artifacts.states.DefaultState.ComputeType;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13 public class SedimentLoadUnknownFacet
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14 extends DataFacet
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 {
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 /** Very own logger. */
6664
4ae1fbaaacdd SedimentLoadUnknownFacet: Removed another debugging obstacle (wrong class for logger).
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6388
diff changeset
17 private static Logger logger = Logger.getLogger(SedimentLoadUnknownFacet.class);
6388
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 public SedimentLoadUnknownFacet() {
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 }
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22 public SedimentLoadUnknownFacet(int idx, String name, String description,
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 ComputeType type, String stateId, String hash) {
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 super(idx, name, description, type, hash, stateId);
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 }
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26
6665
b7945db8a43b issue1413: Only show unknown sediment loads of selected unit type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6664
diff changeset
27 /** Get data from SedimentLoad with unknown type, from factory. */
6388
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 @Override
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 public Object getData(Artifact artifact, CallContext context) {
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 logger.debug("Get data for sediment load at index: " + index);
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 D4EArtifact flys = (D4EArtifact) artifact;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 SedimentLoadAccess access = new SedimentLoadAccess(flys);
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 String river = access.getRiver();
6665
b7945db8a43b issue1413: Only show unknown sediment loads of selected unit type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6664
diff changeset
36 String unit = access.getUnit();
6388
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 SedimentLoad[] unknown =
6665
b7945db8a43b issue1413: Only show unknown sediment loads of selected unit type.
Felix Wolfsteller <felix.wolfsteller@intevation.de>
parents: 6664
diff changeset
38 SedimentLoadFactory.getSedimentLoadUnknown(river, unit.replace("_per_","/"));
6388
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 SedimentLoad load = SedimentLoadFactory.getLoadUnknown(
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 river, unknown[index].getDescription());
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42 return load;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43 }
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 /** Copy deeply. */
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 @Override
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 public Facet deepCopy() {
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 SedimentLoadUnknownFacet copy = new SedimentLoadUnknownFacet();
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 copy.set(this);
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 copy.hash = hash;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
51 copy.stateId = stateId;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
52 return copy;
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
53 }
3eff8efb4354 New Facet for sediment load fraction 'unknown'.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
54 }

http://dive4elements.wald.intevation.org