# HG changeset patch # User Felix Wolfsteller # Date 1343210383 0 # Node ID 1de62ac261f78181c70b0d63b9d1497c10cb8b0a # Parent 98745f30831959df707f07af43839f7575ef09a9 Let WaterlevelFacet handle FixationArtifact. flys-artifacts/trunk@5121 c6561f87-3c4e-4783-a992-168aeb5c3f6f diff -r 98745f308319 -r 1de62ac261f7 flys-artifacts/ChangeLog --- a/flys-artifacts/ChangeLog Wed Jul 25 09:53:24 2012 +0000 +++ b/flys-artifacts/ChangeLog Wed Jul 25 09:59:43 2012 +0000 @@ -1,3 +1,8 @@ +2012-07-25 Felix Wolfsteller + + * src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java: + Handle slightly different access to Fixation-WQKms. + 2012-07-25 Felix Wolfsteller * src/main/java/de/intevation/flys/artifacts/states/fixation/FixationSelect.java: diff -r 98745f308319 -r 1de62ac261f7 flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java --- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java Wed Jul 25 09:53:24 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/WaterlevelFacet.java Wed Jul 25 09:59:43 2012 +0000 @@ -5,12 +5,16 @@ import de.intevation.artifacts.Artifact; import de.intevation.artifacts.CallContext; +import de.intevation.flys.artifacts.FixationArtifact; import de.intevation.flys.artifacts.FLYSArtifact; import de.intevation.flys.artifacts.states.DefaultState.ComputeType; +import de.intevation.flys.artifacts.model.fixings.FixRealizingResult; + import org.apache.log4j.Logger; + /** * Facet of a Waterlevel (WQKms). */ @@ -49,12 +53,31 @@ " /stateId: " + stateId); } - FLYSArtifact winfo = (FLYSArtifact)artifact; + FLYSArtifact winfo = (FLYSArtifact) artifact; CalculationResult res = (CalculationResult) winfo.compute(context, hash, stateId, type, false); - WQKms [] wqkms = (WQKms [])res.getData(); + if (res == null) { + logger.error("WaterlevelFacet.getData: null result"); + return null; + } + + if (winfo == null) { + logger.error("WaterlevelFacet.getData: artifact is null"); + return null; + } + + if (winfo instanceof FixationArtifact) { + FixRealizingResult fr = (FixRealizingResult) res.getData(); + if (fr == null || fr.getWQKms() == null) { + logger.error("WaterlevelFacet.getData: " + + " corrupted FixationArtifact result."); + } + return fr.getWQKms()[index]; + } + + WQKms [] wqkms = (WQKms []) res.getData(); return wqkms[index]; }