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