Skip to content

Commit 8b0ab1a

Browse files
committed
double value text precision support
1 parent 3114d43 commit 8b0ab1a

13 files changed

Lines changed: 782 additions & 6 deletions

src/main/java/mil/nga/crs/common/Axis.java

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,11 @@ public class Axis implements Identifiable {
4040
*/
4141
private Double meridian = null;
4242

43+
/**
44+
* Meridian Text
45+
*/
46+
private String meridianText = null;
47+
4348
/**
4449
* Meridian (Angle) Unit
4550
*/
@@ -50,6 +55,11 @@ public class Axis implements Identifiable {
5055
*/
5156
private Double bearing = null;
5257

58+
/**
59+
* Bearing Text
60+
*/
61+
private String bearingText = null;
62+
5363
/**
5464
* Order
5565
*/
@@ -169,6 +179,15 @@ public Double getMeridian() {
169179
return meridian;
170180
}
171181

182+
/**
183+
* Get the meridian text
184+
*
185+
* @return meridian text
186+
*/
187+
public String getMeridianText() {
188+
return meridianText;
189+
}
190+
172191
/**
173192
* Has a meridian
174193
*
@@ -186,6 +205,18 @@ public boolean hasMeridian() {
186205
*/
187206
public void setMeridian(Double meridian) {
188207
this.meridian = meridian;
208+
this.meridianText = meridian != null ? String.valueOf(meridian) : null;
209+
}
210+
211+
/**
212+
* Set the meridian
213+
*
214+
* @param meridian
215+
* meridian
216+
*/
217+
public void setMeridian(String meridian) {
218+
this.meridianText = meridian;
219+
this.meridian = meridian != null ? Double.parseDouble(meridian) : null;
189220
}
190221

191222
/**
@@ -216,6 +247,15 @@ public Double getBearing() {
216247
return bearing;
217248
}
218249

250+
/**
251+
* Get the bearing text
252+
*
253+
* @return bearing text
254+
*/
255+
public String getBearingText() {
256+
return bearingText;
257+
}
258+
219259
/**
220260
* Has a bearing
221261
*
@@ -233,6 +273,18 @@ public boolean hasBearing() {
233273
*/
234274
public void setBearing(Double bearing) {
235275
this.bearing = bearing;
276+
this.bearingText = bearing != null ? String.valueOf(bearing) : null;
277+
}
278+
279+
/**
280+
* Set the bearing
281+
*
282+
* @param bearing
283+
* bearing text
284+
*/
285+
public void setBearing(String bearing) {
286+
this.bearingText = bearing;
287+
this.bearing = bearing != null ? Double.parseDouble(bearing) : null;
236288
}
237289

238290
/**

src/main/java/mil/nga/crs/common/DateTime.java

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,11 @@ public static DateTime tryParse(String text) {
207207
*/
208208
private Double fraction = null;
209209

210+
/**
211+
* Seconds fraction Text
212+
*/
213+
private String fractionText = null;
214+
210215
/**
211216
* Local time zone hour
212217
*/
@@ -420,6 +425,15 @@ public Double getFraction() {
420425
return fraction;
421426
}
422427

428+
/**
429+
* Get the fraction text
430+
*
431+
* @return fraction text
432+
*/
433+
public String getFractionText() {
434+
return fractionText;
435+
}
436+
423437
/**
424438
* Check if has a fraction
425439
*
@@ -436,10 +450,36 @@ public boolean hasFraction() {
436450
* fraction
437451
*/
438452
public void setFraction(Double fraction) {
439-
if (fraction != null && (fraction < 0 || fraction >= 1.0)) {
440-
throw new CRSException("Invalid fraction value: " + fraction);
441-
}
453+
validateFraction(fraction);
442454
this.fraction = fraction;
455+
this.fractionText = fraction != null ? String.valueOf(fraction) : null;
456+
}
457+
458+
/**
459+
* Set the fraction
460+
*
461+
* @param fraction
462+
* fraction
463+
*/
464+
public void setFraction(String fraction) {
465+
Double value = fraction != null ? Double.parseDouble(fraction) : null;
466+
validateFraction(value);
467+
this.fractionText = fraction;
468+
this.fraction = value;
469+
}
470+
471+
/**
472+
* Validate the fraction
473+
*
474+
* @param fraction
475+
* fraction value
476+
*/
477+
private void validateFraction(Double fraction) {
478+
if (fraction != null) {
479+
if (fraction < 0 || fraction >= 1.0) {
480+
throw new CRSException("Invalid fraction value: " + fraction);
481+
}
482+
}
443483
}
444484

445485
/**

src/main/java/mil/nga/crs/common/DatumEnsemble.java

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,11 @@ public abstract class DatumEnsemble implements Identifiable {
3636
*/
3737
private double accuracy;
3838

39+
/**
40+
* Accuracy (in meters) Text
41+
*/
42+
private String accuracyText;
43+
3944
/**
4045
* Identifiers
4146
*/
@@ -65,6 +70,23 @@ public DatumEnsemble(String name, DatumEnsembleMember member,
6570
setAccuracy(accuracy);
6671
}
6772

73+
/**
74+
* Constructor
75+
*
76+
* @param name
77+
* name
78+
* @param member
79+
* member
80+
* @param accuracy
81+
* accuracy
82+
*/
83+
public DatumEnsemble(String name, DatumEnsembleMember member,
84+
String accuracy) {
85+
setName(name);
86+
addMember(member);
87+
setAccuracy(accuracy);
88+
}
89+
6890
/**
6991
* Constructor
7092
*
@@ -82,6 +104,23 @@ public DatumEnsemble(String name, List<DatumEnsembleMember> members,
82104
setAccuracy(accuracy);
83105
}
84106

107+
/**
108+
* Constructor
109+
*
110+
* @param name
111+
* name
112+
* @param members
113+
* members
114+
* @param accuracy
115+
* accuracy
116+
*/
117+
public DatumEnsemble(String name, List<DatumEnsembleMember> members,
118+
String accuracy) {
119+
setName(name);
120+
addMembers(members);
121+
setAccuracy(accuracy);
122+
}
123+
85124
/**
86125
* Get the name
87126
*
@@ -169,6 +208,15 @@ public double getAccuracy() {
169208
return accuracy;
170209
}
171210

211+
/**
212+
* Get the accuracy text
213+
*
214+
* @return accuracy text
215+
*/
216+
public String getAccuracyText() {
217+
return accuracyText;
218+
}
219+
172220
/**
173221
* Set the accuracy
174222
*
@@ -177,6 +225,18 @@ public double getAccuracy() {
177225
*/
178226
public void setAccuracy(double accuracy) {
179227
this.accuracy = accuracy;
228+
this.accuracyText = String.valueOf(accuracy);
229+
}
230+
231+
/**
232+
* Set the accuracy
233+
*
234+
* @param accuracy
235+
* accuracy
236+
*/
237+
public void setAccuracy(String accuracy) {
238+
this.accuracyText = accuracy;
239+
this.accuracy = Double.parseDouble(accuracy);
180240
}
181241

182242
/**

src/main/java/mil/nga/crs/common/Dynamic.java

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,11 @@ public class Dynamic implements Identifiable {
2626
*/
2727
private double referenceEpoch;
2828

29+
/**
30+
* Reference Epoch Text
31+
*/
32+
private String referenceEpochText;
33+
2934
/**
3035
* Deformation Model Name
3136
*/
@@ -53,6 +58,16 @@ public Dynamic(double referenceEpoch) {
5358
setReferenceEpoch(referenceEpoch);
5459
}
5560

61+
/**
62+
* Constructor
63+
*
64+
* @param referenceEpoch
65+
* reference epoch
66+
*/
67+
public Dynamic(String referenceEpoch) {
68+
setReferenceEpoch(referenceEpoch);
69+
}
70+
5671
/**
5772
* Get the reference epoch
5873
*
@@ -62,6 +77,15 @@ public double getReferenceEpoch() {
6277
return referenceEpoch;
6378
}
6479

80+
/**
81+
* Get the reference epoch text
82+
*
83+
* @return reference epoch text
84+
*/
85+
public String getReferenceEpochText() {
86+
return referenceEpochText;
87+
}
88+
6589
/**
6690
* Set the reference epoch
6791
*
@@ -70,6 +94,18 @@ public double getReferenceEpoch() {
7094
*/
7195
public void setReferenceEpoch(double referenceEpoch) {
7296
this.referenceEpoch = referenceEpoch;
97+
this.referenceEpochText = String.valueOf(referenceEpoch);
98+
}
99+
100+
/**
101+
* Set the reference epoch
102+
*
103+
* @param referenceEpoch
104+
* reference epoch
105+
*/
106+
public void setReferenceEpoch(String referenceEpoch) {
107+
this.referenceEpochText = referenceEpoch;
108+
this.referenceEpoch = Double.parseDouble(referenceEpoch);
73109
}
74110

75111
/**

0 commit comments

Comments
 (0)