annotate 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
rev   line source
3281
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.model.sq;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
2
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
3 import java.util.ArrayList;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
4 import java.util.Iterator;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
5 import java.util.List;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
6
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
7 public class Sieve
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
8 {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
9 public double [] fractionSizes;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
10
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
11 protected List<List<SQ>> fractions;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
12
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
13 public Sieve() {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
14 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
15
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
16 public Sieve(double [] fractionSizes) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
17 this.fractionSizes = fractionSizes;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
18 fractions = new ArrayList<List<SQ>>(fractionSizes.length+1);
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
19 for (int i = fractionSizes.length; i >= 0; --i) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
20 fractions.add(new ArrayList<SQ>());
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
21 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
22 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
23
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
24 public void sieve(Iterator<SQ> sqs) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
25 OUTER: while (sqs.hasNext()) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
26 SQ sq = sqs.next();
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
27 double q = sq.getQ();
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
28 for (int i = 0; i < fractionSizes.length; ++i) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
29 if (q < fractionSizes[i]) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
30 fractions.get(i).add(sq);
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
31 continue OUTER;
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
32 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
33 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
34 fractions.get(fractions.size()-1).add(sq);
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
35 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
36 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
37
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
38 public int numFractions() {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
39 return fractions.size();
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
40 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
41
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
42 public List<SQ> getFraction(int idx) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
43 return fractions.get(idx);
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
44 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
45
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
46 public void reset() {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
47 for (List<SQ> fraction: fractions) {
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
48 fraction.clear();
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
49 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
50 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
51 }
3c61d9e64ca0 SQ: Added sieve
Sascha L. Teichmann <sascha.teichmann@intevation.de>
parents:
diff changeset
52 // vim:set ts=4 sw=4 si et sta sts=4 fenc=utf8 :

http://dive4elements.wald.intevation.org