下面列出了javax.xml.bind.DatatypeConverter#parseDecimal ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
/**
* Read a {@link BigDecimal} value from XML for a number of rooms.
*
* @param value XML string
* @return parsed value or null, if the value is invalid
*/
public static BigDecimal parseRoomsValue(String value) {
value = StringUtils.trimToNull(value);
if (value == null) return null;
final Matcher m = ROOMS_INTERVAL.matcher(value);
if (m.find()) {
final int from = Integer.parseInt(m.group(1));
final int to = Integer.parseInt(m.group(2));
if ((to - from) != -1) {
throw new IllegalArgumentException("Can't parse rooms value '" + value + "' because of an invalid interval!");
}
return DatatypeConverter.parseDecimal(to + ".5");
}
try {
return DatatypeConverter.parseDecimal(value);
} catch (NumberFormatException ex) {
throw new IllegalArgumentException("Can't parse rooms value '" + value + "'!", ex);
}
}
static public BigDecimal StringToBigDecimal(String value) {
try {
return (value == null || value.length() == 0) ? null :
DatatypeConverter.parseDecimal(value);
} catch(Exception e) {
throw new IllegalArgumentException("Could not convert to BigDecimal: "+value, e);
}
}
/**
* Read a {@link BigDecimal} value from XML
* with a valid latitude range.
*
* @param value XML string
* @return parsed value or null, if the value is invalid
*/
public static BigDecimal parseLatitudeValue(String value) {
try {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
} catch (NumberFormatException ex) {
throw new IllegalArgumentException("Can't parse latitude value '" + value + "'!", ex);
}
}
/**
* Read a {@link BigDecimal} value from XML
* with a valid longitude range.
*
* @param value XML string
* @return parsed value or null, if the value is invalid
*/
public static BigDecimal parseLongitudeValue(String value) {
try {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
} catch (NumberFormatException ex) {
throw new IllegalArgumentException("Can't parse longitude value '" + value + "'!", ex);
}
}
/**
* Read a {@link BigDecimal} value from XML for a price.
*
* @param value XML string
* @return parsed value or null, if the value is invalid
*/
public static BigDecimal parsePriceValue(String value) {
value = StringUtils.trimToNull(value);
if (value == null) return null;
try {
return DatatypeConverter.parseDecimal(value);
} catch (NumberFormatException ex) {
throw new IllegalArgumentException("Can't parse price value '" + value + "'!", ex);
}
}
public static Numeric parseXsdDecimalToNumeric(String value) throws DataConversionException {
Numeric result = null;
String valueType = Numeric.class.getName();
try {
BigDecimal decimal = DatatypeConverter.parseDecimal(value);
result = DecimalFactory.getDecimal(decimal);
} catch(Exception e) {
if (result != null) valueType = result.getClass().getName();
logger.fatal("Unable to parse xsd:decimal to "+valueType+".",e);
throw new DataConversionException("Unable to parse xsd:decimal to "+valueType+".", e);
}
return result;
}
public static BigDecimal parsePreisAufAnfrage(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
static public Object convertToJava(String type, String value) {
if ("xs:anySimpleType".equals(type))
return DatatypeConverter.parseAnySimpleType(value);
if ("xs:base64Binary".equals(type))
return DatatypeConverter.parseBase64Binary(value);
if ("xs:boolean".equals(type)) return StringToBoolean(value);
if ("xs:byte".equals(type))
return DatatypeConverter.parseByte(value);
if ("xs:date".equals(type))
return DatatypeConverter.parseDate(value);
if ("xs:dateTime".equals(type))
return DatatypeConverter.parseDateTime(value);
if ("xs:dayTimeDuration".equals(type))
return Utilities.getDatatypeFactory().newDurationDayTime(value);
if ("xs:decimal".equals(type))
return DatatypeConverter.parseDecimal(value);
if ("xs:double".equals(type)) return StringToDouble(value);
if ("xs:duration".equals(type))
return Utilities.getDatatypeFactory().newDuration(value);
if ("xs:float".equals(type)) return StringToFloat(value);
if ("xs:int".equals(type)) return StringToInteger(value);
if ("xs:integer".equals(type))
return DatatypeConverter.parseInteger(value);
if ("xs:long".equals(type)) return StringToLong(value);
if ("xs:short".equals(type))
return DatatypeConverter.parseShort(value);
if ("xs:string".equals(type))
return DatatypeConverter.parseString(value);
if ("xs:time".equals(type))
return DatatypeConverter.parseTime(value);
if ("xs:unsignedInt".equals(type))
return DatatypeConverter.parseUnsignedInt(value);
if ("xs:unsignedLong".equals(type)) {
BigInteger bi = DatatypeConverter.parseInteger(value);
if (bi.compareTo(MAX_UNSIGNED_LONG) < 0) {
return bi.longValue();
} else {
return bi;
}
} if ("xs:unsignedShort".equals(type))
return DatatypeConverter.parseUnsignedShort(value);
if ("xs:yearMonthDuration".equals(type))
return Utilities.getDatatypeFactory().newDurationYearMonth(value);
return value;
}
public static BigDecimal parseZahl32(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseZahl42(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseLongitude(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseZahl62(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseZahl72(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseZahl102(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseZahl152(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseZimmeranzahl(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseDouble(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseDecimal(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseDecimal(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}
public static BigDecimal parseLatitude(String value) {
value = StringUtils.trimToNull(value);
return (value != null) ? DatatypeConverter.parseDecimal(value) : null;
}