Mercurial > dive4elements > river
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 } |