comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/sq/Sieve.java @ 3281:3c61d9e64ca0

SQ: Added sieve flys-artifacts/trunk@4941 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 11 Jul 2012 15:13:01 +0000
parents
children a9c93b7c9da1
comparison
equal deleted inserted replaced
3280:4a70525c5b0d 3281:3c61d9e64ca0
1 package de.intevation.flys.artifacts.model.sq;
2
3 import java.util.ArrayList;
4 import java.util.Iterator;
5 import java.util.List;
6
7 public class Sieve
8 {
9 public double [] fractionSizes;
10
11 protected List<List<SQ>> fractions;
12
13 public Sieve() {
14 }
15
16 public Sieve(double [] fractionSizes) {
17 this.fractionSizes = fractionSizes;
18 fractions = new ArrayList<List<SQ>>(fractionSizes.length+1);
19 for (int i = fractionSizes.length; i >= 0; --i) {
20 fractions.add(new ArrayList<SQ>());
21 }
22 }
23
24 public void sieve(Iterator<SQ> sqs) {
25 OUTER: while (sqs.hasNext()) {
26 SQ sq = sqs.next();
27 double q = sq.getQ();
28 for (int i = 0; i < fractionSizes.length; ++i) {
29 if (q < fractionSizes[i]) {
30 fractions.get(i).add(sq);
31 continue OUTER;
32 }
33 }
34 fractions.get(fractions.size()-1).add(sq);
35 }
36 }
37
38 public int numFractions() {
39 return fractions.size();
40 }
41
42 public List<SQ> getFraction(int idx) {
43 return fractions.get(idx);
44 }
45
46 public void reset() {
47 for (List<SQ> fraction: fractions) {
48 fraction.clear();
49 }
50 }
51 }
52 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org