diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierFacet.java @ 3552:1df6984628c3

S/Q: Extented the result data model of the S/Q calculation to store the curve coefficients for each iteration step of the outlier elimination. flys-artifacts/trunk@5146 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Fri, 27 Jul 2012 12:36:09 +0000
parents 238803b2cb8b
children
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierFacet.java	Fri Jul 27 08:36:24 2012 +0000
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/SQOutlierFacet.java	Fri Jul 27 12:36:09 2012 +0000
@@ -1,17 +1,17 @@
 package de.intevation.flys.artifacts.model.sq;
 
-import org.apache.log4j.Logger;
-
 import de.intevation.artifacts.Artifact;
 import de.intevation.artifacts.CallContext;
 
 import de.intevation.flys.artifacts.FLYSArtifact;
+
 import de.intevation.flys.artifacts.model.CalculationResult;
 import de.intevation.flys.artifacts.model.DataFacet;
 import de.intevation.flys.artifacts.model.FacetTypes;
 
 import de.intevation.flys.artifacts.states.DefaultState.ComputeType;
 
+import org.apache.log4j.Logger;
 
 /**
  * Facet to show the curve in a sq relation.
@@ -24,14 +24,11 @@
 
     public static final int BITMASK_ITERATION = (1 << 16) - 1;
 
-
     private int fractionIdx;
 
-
     public SQOutlierFacet() {
     }
 
-
     public SQOutlierFacet(
         int    idx,
         int    fractionIdx,
@@ -49,39 +46,43 @@
     public Object getData(Artifact artifact, CallContext context) {
         log.debug("SQOutlierFacet.getData");
 
-        if (artifact instanceof FLYSArtifact) {
-            FLYSArtifact flys = (FLYSArtifact) artifact;
-
-            CalculationResult res = (CalculationResult) flys.compute(
-                context, ComputeType.ADVANCE, false);
-
-            int idx  = this.index >> 16;
-            int iter = this.index & BITMASK_ITERATION;
-
-            if (log.isDebugEnabled()) {
-                log.debug("Fetch data for index : " + this.index);
-                log.debug("  > index:       " + idx);
-                log.debug("  > fraction:    " + fractionIdx);
-                log.debug("  > iteration:   " + iter);
-            }
-
-            SQResult[]       result  = (SQResult[]) res.getData();
-            SQFractionResult fResult = result[idx].getFraction(fractionIdx);
-
-            if (fResult == null) {
-                log.warn("No SQFractionResult at " + idx + "|" + fractionIdx);
-            }
-            else if (log.isDebugEnabled()) {
-                SQ[] outliers = fResult.getOutliers(iter);
-                int  num      = outliers != null ? outliers.length : 0;
-
-                log.debug("Found " + num + " outliers for iteration " + iter);
-            }
-
-            return fResult.getOutliers(iter);
+        if (!(artifact instanceof FLYSArtifact)) {
+            return null;
         }
 
-        return null;
+        FLYSArtifact flys = (FLYSArtifact) artifact;
+
+        CalculationResult res = (CalculationResult) flys.compute(
+            context, ComputeType.ADVANCE, false);
+
+        int idx  = this.index >> 16;
+        int iter = this.index & BITMASK_ITERATION;
+
+        boolean debug = log.isDebugEnabled();
+
+        if (debug) {
+            log.debug("Fetch data for index : " + this.index);
+            log.debug("  > index:       " + idx);
+            log.debug("  > fraction:    " + fractionIdx);
+            log.debug("  > iteration:   " + iter);
+        }
+
+        SQResult[]       result  = (SQResult[]) res.getData();
+        SQFractionResult fResult = result[idx].getFraction(fractionIdx);
+
+        if (fResult == null) {
+            log.warn("No SQFractionResult at " + idx + "|" + fractionIdx);
+            return null;
+        }
+
+        SQ [] outliers = fResult.getOutliers(iter);
+
+        if (debug) {
+            int num = outliers != null ? outliers.length : 0;
+            log.debug("Found " + num + " outliers for iteration " + iter);
+        }
+
+        return outliers;
     }
 
 

http://dive4elements.wald.intevation.org