@@ -88,115 +88,55 @@ private String sanitizeKey(@Nonnull final String key) {
8888 }
8989
9090 @ Nullable public Boolean getBooleanValue () {
91- switch (getStringValue ()
92- .toLowerCase (
93- Locale .ROOT )) { // boolean parse returns false for any value that is not
94- // true
95- case "true" :
96- case "1" :
97- return true ;
98- case "false" :
99- case "0" :
100- return false ;
101- default :
102- return null ;
103- }
91+ return parseBooleanValue (getStringValue ());
10492 }
10593
10694 @ Nullable public Byte getByteValue () {
107- try {
108- return Byte .parseByte (getStringValue ());
109- } catch (final NumberFormatException ex ) {
110- return null ;
111- }
95+ return parseByteValue (getStringValue ());
11296 }
11397
11498 @ Nullable public Short getShortValue () {
115- try {
116- return Short .parseShort (getStringValue ());
117- } catch (final NumberFormatException ex ) {
118- return null ;
119- }
99+ return parseShortValue (getStringValue ());
120100 }
121101
122102 @ Nullable public BigDecimal getBigDecimalValue () {
123- try {
124- return new BigDecimal (getStringValue ());
125- } catch (final NumberFormatException ex ) {
126- return null ;
127- }
103+ return parseBigDecimalValue (getStringValue ());
128104 }
129105
130106 @ Nullable public Integer getIntegerValue () {
131- try {
132- return Integer .parseInt (getStringValue ());
133- } catch (final NumberFormatException ex ) {
134- return null ;
135- }
107+ return parseIntegerValue (getStringValue ());
136108 }
137109
138110 @ Nullable public Float getFloatValue () {
139- try {
140- return Float .parseFloat (getStringValue ());
141- } catch (final NumberFormatException ex ) {
142- return null ;
143- }
111+ return parseFloatValue (getStringValue ());
144112 }
145113
146114 @ Nullable public Double getDoubleValue () {
147- try {
148- return Double .parseDouble (getStringValue ());
149- } catch (final NumberFormatException ex ) {
150- return null ;
151- }
115+ return parseDoubleValue (getStringValue ());
152116 }
153117
154118 @ Nullable public Long getLongValue () {
155- try {
156- return Long .parseLong (getStringValue ());
157- } catch (final NumberFormatException ex ) {
158- return null ;
159- }
119+ return parseLongValue (getStringValue ());
160120 }
161121
162122 @ Nullable public UUID getUUIDValue () {
163- final String stringValue = getStringValue ();
164- if (stringValue == null ) return null ;
165- return UUID .fromString (stringValue );
123+ return parseUUIDValue (getStringValue ());
166124 }
167125
168126 @ Nullable public OffsetDateTime getOffsetDateTimeValue () {
169- final String stringValue = getStringValue ();
170- if (stringValue == null ) return null ;
171- try {
172- return OffsetDateTime .parse (stringValue );
173- } catch (DateTimeParseException ex ) {
174- // Append UTC offset if it's missing
175- try {
176- LocalDateTime localDateTime = LocalDateTime .parse (stringValue );
177- return localDateTime .atOffset (ZoneOffset .UTC );
178- } catch (DateTimeParseException ex2 ) {
179- throw ex ;
180- }
181- }
127+ return parseOffsetDateTimeValue (getStringValue ());
182128 }
183129
184130 @ Nullable public LocalDate getLocalDateValue () {
185- final String stringValue = getStringValue ();
186- if (stringValue == null ) return null ;
187- return LocalDate .parse (stringValue );
131+ return parseLocalDateValue (getStringValue ());
188132 }
189133
190134 @ Nullable public LocalTime getLocalTimeValue () {
191- final String stringValue = getStringValue ();
192- if (stringValue == null ) return null ;
193- return LocalTime .parse (stringValue );
135+ return parseLocalTimeValue (getStringValue ());
194136 }
195137
196138 @ Nullable public PeriodAndDuration getPeriodAndDurationValue () {
197- final String stringValue = getStringValue ();
198- if (stringValue == null ) return null ;
199- return PeriodAndDuration .parse (stringValue );
139+ return parsePeriodAndDurationValue (getStringValue ());
200140 }
201141
202142 @ Nullable public <T > List <T > getCollectionOfPrimitiveValues (@ Nonnull final Class <T > targetClass ) {
@@ -231,6 +171,8 @@ private String sanitizeKey(@Nonnull final String key) {
231171 return (T ) parseIntegerValue (value );
232172 } else if (targetClass == Float .class ) {
233173 return (T ) parseFloatValue (value );
174+ } else if (targetClass == Double .class ) {
175+ return (T ) parseDoubleValue (value );
234176 } else if (targetClass == Long .class ) {
235177 return (T ) parseLongValue (value );
236178 } else if (targetClass == UUID .class ) {
@@ -307,6 +249,15 @@ private String sanitizeKey(@Nonnull final String key) {
307249 }
308250 }
309251
252+ @ Nullable private static Double parseDoubleValue (@ Nullable final String value ) {
253+ if (value == null ) return null ;
254+ try {
255+ return Double .parseDouble (value );
256+ } catch (final NumberFormatException ex ) {
257+ return null ;
258+ }
259+ }
260+
310261 @ Nullable private static Long parseLongValue (@ Nullable final String value ) {
311262 if (value == null ) return null ;
312263 try {
0 commit comments