Mercurial > dive4elements > river
comparison artifacts/src/main/java/org/dive4elements/river/artifacts/model/sq/SQ.java @ 6780:b8f94e865875
S/Q relation: Part I of 'faking' fitting linear data. S/Qs can now be subclassed and processed through views. TODO: Add knob to setup a linear data path.
author | Sascha L. Teichmann <teichmann@intevation.de> |
---|---|
date | Thu, 08 Aug 2013 12:17:03 +0200 |
parents | af13ceeba52a |
children | 84929f882fa2 |
comparison
equal
deleted
inserted
replaced
6779:8e5adc56385c | 6780:b8f94e865875 |
---|---|
9 package org.dive4elements.river.artifacts.model.sq; | 9 package org.dive4elements.river.artifacts.model.sq; |
10 | 10 |
11 import java.io.Serializable; | 11 import java.io.Serializable; |
12 | 12 |
13 | 13 |
14 /** Represents S/Q pairs. They are immutable! */ | |
14 public class SQ implements Serializable { | 15 public class SQ implements Serializable { |
16 | |
17 public interface Factory { | |
18 SQ createSQ(double s, double q); | |
19 } | |
20 | |
21 public static final Factory SQ_FACTORY = new Factory() { | |
22 @Override | |
23 public SQ createSQ(double s, double q) { | |
24 return new SQ(s, q); | |
25 } | |
26 }; | |
27 | |
28 public interface View { | |
29 double getS(SQ sq); | |
30 double getQ(SQ sq); | |
31 } | |
32 | |
33 public static final View SQ_VIEW = new View() { | |
34 @Override | |
35 public double getS(SQ sq) { | |
36 return sq.getS(); | |
37 } | |
38 | |
39 @Override | |
40 public double getQ(SQ sq) { | |
41 return sq.getQ(); | |
42 } | |
43 }; | |
15 | 44 |
16 protected double s; | 45 protected double s; |
17 protected double q; | 46 protected double q; |
18 | 47 |
19 public SQ() { | 48 public SQ() { |
27 | 56 |
28 public double getS() { | 57 public double getS() { |
29 return s; | 58 return s; |
30 } | 59 } |
31 | 60 |
32 public void setS(double s) { | |
33 this.s = s; | |
34 } | |
35 | |
36 | |
37 public double getQ() { | 61 public double getQ() { |
38 return q; | 62 return q; |
39 } | |
40 | |
41 public void setQ(double q) { | |
42 this.q = q; | |
43 } | 63 } |
44 | 64 |
45 public boolean isValid() { | 65 public boolean isValid() { |
46 return !Double.isNaN(s) && !Double.isNaN(q); | 66 return !Double.isNaN(s) && !Double.isNaN(q); |
47 } | 67 } |