comparison flys-artifacts/src/main/java/de/intevation/flys/artifacts/model/Parameters.java @ 2729:a441be7f1589

Added Fix calculation. flys-artifacts/trunk@4462 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Tue, 22 May 2012 17:09:27 +0000
parents ae0742f92cd5
children c1f2e792704a
comparison
equal deleted inserted replaced
2728:306b9d0f0fb3 2729:a441be7f1589
1 package de.intevation.flys.artifacts.model; 1 package de.intevation.flys.artifacts.model;
2 2
3 import gnu.trove.TDoubleArrayList; 3 import gnu.trove.TDoubleArrayList;
4
5 import java.util.Map;
6 4
7 import java.io.Serializable; 5 import java.io.Serializable;
8 6
9 public class Parameters 7 public class Parameters
10 implements Serializable 8 implements Serializable
11 { 9 {
12 public static class Parameter
13 implements Serializable
14 {
15 public String name;
16 public double value;
17
18 public Parameter() {
19 }
20
21 public Parameter(String name, double value) {
22 this.name = name;
23 this.value = value;
24 }
25 public String getName() {
26 return name;
27 }
28
29 public void setName(String name) {
30 this.name = name;
31 }
32
33 public double getValue() {
34 return value;
35 }
36
37 public void setValue(double value) {
38 this.value = value;
39 }
40 } // Parameter
41
42 protected String [] columnNames; 10 protected String [] columnNames;
43 protected TDoubleArrayList [] columns; 11 protected TDoubleArrayList [] columns;
44 12
45 public Parameters() { 13 public Parameters() {
46 } 14 }
63 } 31 }
64 } 32 }
65 return -1; 33 return -1;
66 } 34 }
67 35
68 public void add(Parameter [] parameters) { 36 public int newRow() {
69 37
70 int N = columns[0].size(); 38 int N = columns[0].size();
71 39
72 for (int i = 0; i < columns.length; ++i) { 40 for (int i = 0; i < columns.length; ++i) {
73 columns[i].add(Double.NaN); 41 columns[i].add(Double.NaN);
74 } 42 }
75 43
76 for (Parameter parameter: parameters) { 44 return N;
77 int index = columnIndex(parameter.getName());
78 if (index >= 0) {
79 columns[index].setQuick(N, parameter.getValue());
80 }
81 }
82 }
83
84 public void add(Map<String, Double> parameters) {
85
86 int N = columns[0].size();
87
88 for (int i = 0; i < columns.length; ++i) {
89 columns[i].add(Double.NaN);
90 }
91
92 for (Map.Entry<String, Double> entry: parameters.entrySet()) {
93 int index = columnIndex(entry.getKey());
94 Double v = entry.getValue();
95 if (index >= 0 && v != null) {
96 columns[index].setQuick(N, v);
97 }
98 }
99 }
100
101 public Parameter [] get(int i) {
102 Parameter [] parameters = new Parameter[columns.length];
103 for (int j = 0; i < parameters.length; ++j) {
104 parameters[j] = new Parameter(columnNames[j], Double.NaN);
105 }
106 return get(i, parameters);
107 }
108
109 public Parameter [] get(int i, Parameter [] parameters) {
110 for (Parameter parameter: parameters) {
111 int index = columnIndex(parameter.getName());
112 if (index >= 0) {
113 parameter.setValue(columns[index].getQuick(i));
114 }
115 }
116 return parameters;
117 } 45 }
118 46
119 public double get(int i, int index) { 47 public double get(int i, int index) {
120 return columns[index].getQuick(i); 48 return columns[index].getQuick(i);
121 } 49 }
123 public double get(int i, String columnName) { 51 public double get(int i, String columnName) {
124 int index = columnIndex(columnName); 52 int index = columnIndex(columnName);
125 return index >= 0 53 return index >= 0
126 ? columns[index].getQuick(i) 54 ? columns[index].getQuick(i)
127 : Double.NaN; 55 : Double.NaN;
56 }
57
58 public void set(int i, String columnName, double value) {
59 int idx = columnIndex(columnName);
60 if (idx >= 0) {
61 columns[i].setQuick(idx, value);
62 }
128 } 63 }
129 64
130 public int size() { 65 public int size() {
131 return columns[0].size(); 66 return columns[0].size();
132 } 67 }

http://dive4elements.wald.intevation.org