comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/BedloadDiameterFacet.java @ 3757:e8a90a5ce624

Added facets and chart generator for bed quality calculation. flys-artifacts/trunk@5454 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Ingo Weinzierl <ingo.weinzierl@intevation.de>
date Thu, 13 Sep 2012 12:08:50 +0000
parents
children 5a8f8fd5310c
comparison
equal deleted inserted replaced
3756:912a398968b6 3757:e8a90a5ce624
1 package de.intevation.flys.artifacts.model.minfo;
2
3 import org.apache.log4j.Logger;
4
5 import de.intevation.artifactdatabase.state.Facet;
6 import de.intevation.artifacts.Artifact;
7 import de.intevation.artifacts.CallContext;
8 import de.intevation.flys.artifacts.FLYSArtifact;
9 import de.intevation.flys.artifacts.model.CalculationResult;
10 import de.intevation.flys.artifacts.model.DataFacet;
11 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
12
13
14 /**
15 * Facet for serving bedload diameter data.
16 *
17 * @author <a href="mailto:ingo.weinzierl@intevation.de">Ingo Weinzierl</a>
18 */
19 public class BedloadDiameterFacet extends DataFacet {
20
21 private static final long serialVersionUID = 1L;
22
23 private static Logger logger = Logger.getLogger(BedloadDiameterFacet.class);
24
25 public BedloadDiameterFacet() {
26 // required for clone operation deepCopy()
27 }
28
29 public BedloadDiameterFacet(int idx, String name, String description,
30 ComputeType type, String stateId, String hash) {
31 super(idx, name, description, type, hash, stateId);
32 }
33
34 public Object getData(Artifact artifact, CallContext context) {
35 logger.debug("Get data for bedload diameter at index: " + index);
36
37 FLYSArtifact flys = (FLYSArtifact) artifact;
38
39 CalculationResult res = (CalculationResult) flys.compute(context, hash,
40 stateId, type, false);
41
42 Object[] data = (Object[]) res.getData(); // TODO CAST TO SPECIFIC CLASS
43
44 return data != null && data.length > index ? data[index] : null;
45 }
46
47 /** Copy deeply. */
48 @Override
49 public Facet deepCopy() {
50 BedloadDiameterFacet copy = new BedloadDiameterFacet();
51 copy.set(this);
52 copy.type = type;
53 copy.hash = hash;
54 copy.stateId = stateId;
55 return copy;
56 }
57 }
58 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org