comparison artifacts/src/main/java/org/dive4elements/river/artifacts/datacage/templating/FixAnalysisYearXPathFunction.java @ 9234:2d4750874c57

Cleanup and more fail safe
author gernotbelger
date Fri, 06 Jul 2018 13:12:04 +0200
parents 5030c46d8cb4
children abf4d0b10270
comparison
equal deleted inserted replaced
9233:03427b89ba62 9234:2d4750874c57
13 import java.util.UUID; 13 import java.util.UUID;
14 14
15 import javax.xml.xpath.XPathFunction; 15 import javax.xml.xpath.XPathFunction;
16 import javax.xml.xpath.XPathFunctionException; 16 import javax.xml.xpath.XPathFunctionException;
17 17
18 import org.apache.log4j.Logger;
19 import org.dive4elements.artifacts.CallContext; 18 import org.dive4elements.artifacts.CallContext;
19 import org.dive4elements.river.artifacts.D4EArtifact;
20 import org.dive4elements.river.artifacts.FixationArtifact; 20 import org.dive4elements.river.artifacts.FixationArtifact;
21 import org.dive4elements.river.artifacts.access.FixRealizingAccess; 21 import org.dive4elements.river.artifacts.access.FixRealizingAccess;
22 import org.dive4elements.river.artifacts.model.fixings.FixRealizingCalculationExtended; 22 import org.dive4elements.river.artifacts.model.fixings.FixRealizingCalculationExtended;
23 import org.dive4elements.river.utils.RiverUtils; 23 import org.dive4elements.river.utils.RiverUtils;
24 24
32 32
33 public static final String ID = "fix_analysis_year"; 33 public static final String ID = "fix_analysis_year";
34 34
35 public static final int ARITY = 1; 35 public static final int ARITY = 1;
36 36
37 private static Logger log = Logger.getLogger(FixAnalysisYearXPathFunction.class);
38
39 private final CallContext context; 37 private final CallContext context;
40 38
41 public FixAnalysisYearXPathFunction(final CallContext context) { 39 public FixAnalysisYearXPathFunction(final CallContext context) {
42 this.context = context; 40 this.context = context;
43 } 41 }
44 42
45 @Override 43 @Override
46 public Object evaluate(final List args) throws XPathFunctionException { 44 public Object evaluate(final List args) throws XPathFunctionException {
47 45
48 // FIXME: get artifact id
49 final UUID uuid = (UUID) args.get(0); 46 final UUID uuid = (UUID) args.get(0);
47 if (uuid == null)
48 return null;
50 49
51 final FixationArtifact fixation = (FixationArtifact) RiverUtils.getArtifact(uuid.toString(), this.context); 50 final D4EArtifact artifact = RiverUtils.getArtifact(uuid.toString(), this.context);
51 if (!(artifact instanceof FixationArtifact))
52 return null;
52 53
53 // FIXME: fetch year 54 final FixationArtifact fixation = (FixationArtifact) artifact;
54 // final CalculationResult r = (CalculationResult) fixation.compute(this.context, ComputeType.ADVANCE, false);
55 // final FixRealizingResult frR = (FixRealizingResult) r.getData();
56 55
57 // Get W/Q input per gauge for this case. 56 // Get W/Q input per gauge for this case.
58 final FixRealizingAccess fixAccess = new FixRealizingAccess(fixation); 57 final FixRealizingAccess fixAccess = new FixRealizingAccess(fixation);
59 // final List<Segment> segments = fixAccess.getSegments();
60 // final boolean isFixRealize = (segments != null && !segments.isEmpty());
61 58
62 /* ugly but necessary to keep this logic at least a bit inside the FixRealizing stuff */ 59 /* ugly but necessary to keep this logic at least a bit inside the FixRealizing stuff */
63 final FixRealizingCalculationExtended calculation = new FixRealizingCalculationExtended(fixAccess); 60 final FixRealizingCalculationExtended calculation = new FixRealizingCalculationExtended(fixAccess);
64 return calculation.determineMeanYear(); 61 return calculation.determineMeanYear();
65 } 62 }

http://dive4elements.wald.intevation.org