diff flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Sieve.java @ 3992:a9c93b7c9da1

Simpify the S(Q) fraction sieving stuff.
author Sascha L. Teichmann <teichmann@intevation.de>
date Sun, 30 Sep 2012 21:15:23 +0200
parents 3c61d9e64ca0
children ab3a4ad82ae1
line wrap: on
line diff
--- a/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Sieve.java	Sun Sep 30 19:03:26 2012 +0200
+++ b/flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Sieve.java	Sun Sep 30 21:15:23 2012 +0200
@@ -1,52 +1,66 @@
 package de.intevation.flys.artifacts.model.sq;
 
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
 public class Sieve
 {
-    public double [] fractionSizes;
+    public static final double EPSILON = 1e-6;
 
-    protected List<List<SQ>> fractions;
+    protected double diameter;
+    protected double load;
 
+    /**
+     * Constructs a new instance.
+     */
     public Sieve() {
-    }
-
-    public Sieve(double [] fractionSizes) {
-        this.fractionSizes = fractionSizes;
-        fractions = new ArrayList<List<SQ>>(fractionSizes.length+1);
-        for (int i = fractionSizes.length; i >= 0; --i) {
-            fractions.add(new ArrayList<SQ>());
-        }
+        this(Double.NaN, Double.NaN);
     }
 
-    public void sieve(Iterator<SQ> sqs) {
-        OUTER: while (sqs.hasNext()) {
-            SQ sq = sqs.next();
-            double q = sq.getQ();
-            for (int i = 0; i < fractionSizes.length; ++i) {
-                if (q < fractionSizes[i]) {
-                    fractions.get(i).add(sq);
-                    continue OUTER;
-                }
-            }
-            fractions.get(fractions.size()-1).add(sq);
-        }
+    public Sieve(double diameter, double load) {
+        this.diameter = diameter;
+        this.load = load;
     }
 
-    public int numFractions() {
-        return fractions.size();
+    /**
+     * Gets the diameter for this instance.
+     *
+     * @return The diameter.
+     */
+    public double getDiameter() {
+        return this.diameter;
     }
 
-    public List<SQ> getFraction(int idx) {
-        return fractions.get(idx);
+    /**
+     * Sets the diameter for this instance.
+     *
+     * @param diameter The diameter.
+     */
+    public void setDiameter(double diameter) {
+        this.diameter = diameter;
     }
 
-    public void reset() {
-        for (List<SQ> fraction: fractions) {
-            fraction.clear();
-        }
+    /**
+     * Gets the load for this instance.
+     *
+     * @return The load.
+     */
+    public double getLoad() {
+        return this.load;
+    }
+
+    /**
+     * Sets the load for this instance.
+     *
+     * @param load The load.
+     */
+    public void setLoad(double load) {
+        this.load = load;
+    }
+
+    public boolean matchesDiameter(double diameter) {
+        return Math.abs(diameter - this.diameter) < EPSILON;
+    }
+
+    public boolean hasDiameter() {
+        return !Double.isNaN(diameter);
     }
 }
 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org