in modules/databinding/src/main/java/org/apache/tuscany/sca/databinding/impl/SimpleTypeMapperImpl.java [245:346]
public Object toJavaObject(QName simpleType, String literal, TransformationContext context) {
/**
* <ul>
* <li>xsd:string --- java.lang.String
* <li>xsd:integer --- java.math.BigInteger
* <li>xsd:int --- int
* <li>xsd:long --- long
* <li>xsd:short --- short
* <li>xsd:decimal --- java.math.BigDecimal
* <li>xsd:float --- float
* <li>xsd:double --- double
* <li>xsd:boolean --- boolean
* <li>xsd:byte --- byte
* <li>xsd:QName --- javax.xml.namespace.QName
* <li>xsd:dateTime --- javax.xml.datatype.XMLGregorianCalendar
* <li>xsd:base64Binary --- byte[]
* <li>xsd:hexBinary --- byte[]
* <li>xsd:unsignedInt --- long
* <li>xsd:unsignedShort --- int
* <li>xsd:unsignedByte --- short
* <li>xsd:time --- javax.xml.datatype.XMLGregorianCalendar
* <li>xsd:date --- javax.xml.datatype.XMLGregorianCalendar
* <li>xsd:g* --- javax.xml.datatype.XMLGregorianCalendar
* <li>xsd:anySimpleType (for xsd:element of this type)a
* java.lang.Object
* <li>xsd:anySimpleType (for xsd:attribute of this type)
* java.lang.String
* <li>xsd:duration javax.xml.datatype.Duration
* <li>xsd:NOTATION javax.xml.namespace.QName
* </ul>
*/
if (literal == null) {
return null;
}
String value = literal.trim();
QName type = simpleType;
if (type.equals(XSD_STRING)) {
return parseString(value);
} else if (type.equals(XSD_INT)) {
return parseInt(value);
} else if (type.equals(XSD_INTEGER)) {
return parseInteger(value);
} else if (type.equals(XSD_INT)) {
return parseInt(value);
} else if (type.equals(XSD_FLOAT)) {
return parseFloat(value);
} else if (type.equals(XSD_DOUBLE)) {
return parseDouble(value);
} else if (type.equals(XSD_SHORT)) {
return parseShort(value);
} else if (type.equals(XSD_DECIMAL)) {
return parseDecimal(value);
} else if (type.equals(XSD_BOOLEAN)) {
return parseBoolean(value);
} else if (type.equals(XSD_BYTE)) {
return parseByte(value);
} else if (type.equals(XSD_LONG)) {
return parseLong(value);
} else if (type.equals(XSD_UNSIGNEDBYTE)) {
return parseUnsignedShort(value);
} else if (type.equals(XSD_UNSIGNEDSHORT)) {
return parseUnsignedShort(value);
} else if (type.equals(XSD_UNSIGNEDINT)) {
return parseUnsignedInt(value);
} else if (type.equals(XSD_UNSIGNEDLONG)) {
return parseUnsignedInt(value);
} else if (type.equals(XSD_DATETIME)) {
return parseDateTime(value);
} else if (type.equals(XSD_DATE)) {
return parseDate(value);
} else if (type.equals(XSD_TIME)) {
return parseTime(value);
} else if (type.equals(XSD_DURATION)) {
return parseDuration(value);
} else if (type.equals(XSD_HEXBIN)) {
return parseHexBinary(value);
} else if (type.equals(XSD_BASE64)) {
return parseBase64Binary(value);
} else if (type.equals(XSD_QNAME)) {
NamespaceContext namespaceContext =
(NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class.getName()) : null);
return parseQName(value, namespaceContext);
} else if (type.equals(XSD_NOTATION)) {
NamespaceContext namespaceContext =
(NamespaceContext)((context != null) ? context.getMetadata().get(NamespaceContext.class.getName()) : null);
return parseQName(value, namespaceContext);
} else if (type.equals(XSD_YEAR)) {
return factory.newXMLGregorianCalendar(value);
} else if (type.equals(XSD_MONTH)) {
return factory.newXMLGregorianCalendar(value);
} else if (type.equals(XSD_DAY)) {
return factory.newXMLGregorianCalendar(value);
} else if (type.equals(XSD_YEARMONTH)) {
return factory.newXMLGregorianCalendar(value);
} else if (type.equals(XSD_MONTHDAY)) {
return factory.newXMLGregorianCalendar(value);
} else {
return value;
}
}