Mercurial > dive4elements > river
diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixDerivateFacet.java @ 3215:750e98fc8b76
FixA: Tweaked the derivate diagram a bit and added chart info.
flys-artifacts/trunk@4838 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author | Sascha L. Teichmann <sascha.teichmann@intevation.de> |
---|---|
date | Fri, 29 Jun 2012 15:40:43 +0000 |
parents | 1b9f791937c3 |
children | 50d61a2494cb |
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixDerivateFacet.java Fri Jun 29 13:42:06 2012 +0000 +++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/fixings/FixDerivateFacet.java Fri Jun 29 15:40:43 2012 +0000 @@ -60,50 +60,50 @@ */ @Override public Object getData(Artifact artifact, CallContext context) { - logger.debug("FixDerivateFacet.getData"); - if (artifact instanceof FLYSArtifact) { - FLYSArtifact flys = (FLYSArtifact)artifact; - FixationArtifactAccess access = new FixationArtifactAccess(flys); - - CalculationResult res = - (CalculationResult) flys.compute(context, - ComputeType.ADVANCE, - false); - - FixResult result = (FixResult) res.getData(); - double currentKm = - ((Double)context.getContextValue("currentKm")).doubleValue(); - - String function = access.getFunction(); - Function ff = FunctionFactory.getInstance().getFunction(function); - Function.Derivative fd = ff.getDerivative(); - Parameters params = result.getParameters(); - double maxQ = FixFacetUtils.getMaxQ(params, currentKm); - - String[] paramNames = ff.getParameterNames(); - - double[] coeffs = params.interpolate("km", currentKm, paramNames); - if(coeffs == null) { - logger.warn("getData: coeffs == null"); - return null; - } - - de.intevation.flys.artifacts.math.Function mf = - fd.instantiate(coeffs); - - FixFunction fix = new FixFunction( - "", - ff.getDescription(), - mf, - maxQ); - - return fix; - } - else { + logger.debug("FixDerivateFacet.getData"); + if (!(artifact instanceof FLYSArtifact)) { logger.debug("Not an instance of FixationArtifact."); return null; } + + FLYSArtifact flys = (FLYSArtifact)artifact; + FixationArtifactAccess access = new FixationArtifactAccess(flys); + + CalculationResult res = + (CalculationResult) flys.compute(context, + ComputeType.ADVANCE, + false); + + FixResult result = (FixResult) res.getData(); + double currentKm = + ((Double)context.getContextValue("currentKm")).doubleValue(); + + String function = access.getFunction(); + Function ff = FunctionFactory.getInstance().getFunction(function); + Function.Derivative fd = ff.getDerivative(); + + Parameters params = result.getParameters(); + double maxQ = FixFacetUtils.getMaxQ(params, currentKm); + + String[] paramNames = ff.getParameterNames(); + + double[] coeffs = params.interpolate("km", currentKm, paramNames); + if (coeffs == null) { + logger.warn("getData: coeffs == null"); + return null; + } + + de.intevation.flys.artifacts.math.Function mf = + fd.instantiate(coeffs); + + FixFunction fix = new FixFunction( + "", + fd.getDescription(), + mf, + maxQ); + + return fix; }