]> gitweb.fperrin.net Git - GpsPrune.git/blob - src/tim/prune/data/Unit.java
a073297a09b520245c53c4cabf6f526745124742
[GpsPrune.git] / src / tim / prune / data / Unit.java
1 package tim.prune.data;
2
3 /**
4  * Class to represent a single distance or speed unit
5  * such as kilometres, mph, feet etc
6  */
7 public class Unit
8 {
9         private String _nameKey = null;
10         private double _multFactorFromStd = 1.0;
11         private boolean _isStandard = false;
12
13         /**
14          * Unit constructor
15          * @param inNameKey name key
16          * @param inMultFactor multiplication factor from standard units
17          */
18         public Unit(String inNameKey, double inMultFactor)
19         {
20                 _nameKey = inNameKey;
21                 _multFactorFromStd = inMultFactor;
22                 _isStandard = false;
23         }
24
25         /**
26          * Unit constructor for standard unit
27          * @param inNameKey name key
28          */
29         public Unit(String inNameKey)
30         {
31                 _nameKey = inNameKey;
32                 _multFactorFromStd = 1.0;
33                 _isStandard = true;
34         }
35
36         /**
37          * Unit constructor
38          * @param inParent parent unit
39          * @param inSuffix suffix to name key
40          */
41         public Unit(Unit inParent, String inSuffix)
42         {
43                 this(inParent, inSuffix, 1.0);
44         }
45
46         /**
47          * Unit constructor
48          * @param inParent parent unit
49          * @param inSuffix suffix to name key
50          * @param inFactor additional time factor to apply
51          */
52         public Unit(Unit inParent, String inSuffix, double inFactor)
53         {
54                 _nameKey = inParent._nameKey + inSuffix;
55                 _multFactorFromStd = inParent._multFactorFromStd * inFactor;
56                 _isStandard = inParent._isStandard;
57         }
58
59         /**
60          * @return name key
61          */
62         public String getNameKey() {
63                 return "units." + _nameKey;
64         }
65
66         /**
67          * @return shortname key
68          */
69         public String getShortnameKey() {
70                 return getNameKey() + ".short";
71         }
72
73         /**
74          * @return multiplication factor from standard units
75          */
76         public double getMultFactorFromStd() {
77                 return _multFactorFromStd;
78         }
79
80         /**
81          * @return true if this is the standard unit (mult factor 1.0)
82          */
83         public boolean isStandard() {
84                 return _isStandard;
85         }
86 }