annotate flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/minfo/MorphologicWidth.java @ 5764:7ac111db8a07

Model, factory, facet and static artifact for morphologic width.
author Raimund Renkert <rrenkert@intevation.de>
date Thu, 18 Apr 2013 14:14:15 +0200
parents
children 4a1bd43e7aa6
rev   line source
5764
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
1 package de.intevation.flys.artifacts.model.minfo;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
2
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
3 import java.util.HashMap;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
4 import java.util.Map;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
5
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
6 import de.intevation.flys.jfree.DoubleBounds;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
7
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
8
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
9 public class MorphologicWidth
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
10 {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
11
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
12 private Map<Double, Double> pairs;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
13
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
14
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
15 public MorphologicWidth() {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
16 pairs = new HashMap<Double, Double>();
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
17 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
18
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
19 public void add(double station, double width) {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
20 this.pairs.put(station, width);
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
21 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
22
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
23 public Map<Double, Double> getAll() {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
24 return this.pairs;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
25 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
26
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
27 public double[][] getAsArray() {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
28 double [][] array = new double[2][pairs.size()];
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
29 Double[] kms = pairs.keySet().toArray(new Double[pairs.size()]);
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
30 Double[] width = pairs.values().toArray(new Double[pairs.size()]);
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
31 int realIndex = 0;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
32 for (int i = 0; i < kms.length; i++) {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
33 if (kms[i] == null || width[i] == null) {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
34 continue;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
35 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
36 array[0][realIndex] = kms[i];
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
37 array[1][realIndex] = width[i];
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
38 realIndex++;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
39 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
40 return array;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
41 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
42
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
43
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
44 public Double getWidth(double station) {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
45 if (this.pairs.containsKey(station)) {
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
46 return this.pairs.get(station);
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
47 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
48 return null;
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
49 }
7ac111db8a07 Model, factory, facet and static artifact for morphologic width.
Raimund Renkert <rrenkert@intevation.de>
parents:
diff changeset
50 }

http://dive4elements.wald.intevation.org