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