com.evolveum.midpoint.schema
Class XsdTypeConverter
java.lang.Object
com.evolveum.midpoint.schema.XsdTypeConverter
public class XsdTypeConverter
- extends java.lang.Object
Simple implementation that converts XSD primitive types to Java (and vice
versa).
It convert type names (xsd types to java classes) and also the values.
The implementation is very simple now. In fact just a bunch of ifs. We don't
need much more now. If more complex thing will be needed, we will extend the
implementation later.
- Author:
- Radovan Semancik
Method Summary |
static void |
appendBelowNode(java.lang.Object val,
javax.xml.namespace.QName xsdType,
javax.xml.namespace.QName name,
org.w3c.dom.Node parentNode,
boolean recordType)
|
static boolean |
canConvert(java.lang.Class<?> clazz)
|
static java.lang.Class |
toJavaType(javax.xml.namespace.QName xsdType)
|
static java.lang.Object |
toJavaValue(java.lang.Object xmlElement)
Expects type information in xsi:type |
static
|
toJavaValue(java.lang.Object element,
java.lang.Class<T> type)
|
static java.lang.Object |
toJavaValue(java.lang.Object xmlElement,
javax.xml.namespace.QName type)
|
static long |
toMillis(javax.xml.datatype.XMLGregorianCalendar xmlCal)
|
static TypedValue |
toTypedJavaValueWithDefaultType(java.lang.Object element,
javax.xml.namespace.QName defaultType)
Try to locate element type from xsi:type, fall back to specified default
type. |
static javax.xml.datatype.XMLGregorianCalendar |
toXMLGregorianCalendar(java.util.GregorianCalendar cal)
|
static javax.xml.datatype.XMLGregorianCalendar |
toXMLGregorianCalendar(long timeInMillis)
|
static java.lang.Object |
toXsdElement(java.lang.Object val,
javax.xml.namespace.QName elementName,
org.w3c.dom.Document doc)
|
static java.lang.Object |
toXsdElement(java.lang.Object val,
javax.xml.namespace.QName elementName,
org.w3c.dom.Document doc,
boolean recordType)
|
static java.lang.Object |
toXsdElement(java.lang.Object val,
javax.xml.namespace.QName typeName,
javax.xml.namespace.QName elementName,
org.w3c.dom.Document doc,
boolean recordType)
|
static javax.xml.namespace.QName |
toXsdType(java.lang.Class javaClass)
|
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
XsdTypeConverter
public XsdTypeConverter()
toXsdType
public static javax.xml.namespace.QName toXsdType(java.lang.Class javaClass)
toJavaType
public static java.lang.Class toJavaType(javax.xml.namespace.QName xsdType)
toJavaValue
public static <T> T toJavaValue(java.lang.Object element,
java.lang.Class<T> type)
throws javax.xml.bind.JAXBException
- Throws:
javax.xml.bind.JAXBException
toJavaValue
public static java.lang.Object toJavaValue(java.lang.Object xmlElement,
javax.xml.namespace.QName type)
throws javax.xml.bind.JAXBException
- Throws:
javax.xml.bind.JAXBException
toJavaValue
public static java.lang.Object toJavaValue(java.lang.Object xmlElement)
throws javax.xml.bind.JAXBException
- Expects type information in xsi:type
- Parameters:
xmlElement
-
- Returns:
-
- Throws:
javax.xml.bind.JAXBException
toTypedJavaValueWithDefaultType
public static TypedValue toTypedJavaValueWithDefaultType(java.lang.Object element,
javax.xml.namespace.QName defaultType)
throws javax.xml.bind.JAXBException
- Try to locate element type from xsi:type, fall back to specified default
type.
- Parameters:
xmlElement
- defaultType
-
- Returns:
- converted java value
- Throws:
javax.xml.bind.JAXBException
java.lang.IllegalStateException
- if no xsi:type or default type specified
toXsdElement
public static java.lang.Object toXsdElement(java.lang.Object val,
javax.xml.namespace.QName typeName,
javax.xml.namespace.QName elementName,
org.w3c.dom.Document doc,
boolean recordType)
throws javax.xml.bind.JAXBException
- Throws:
javax.xml.bind.JAXBException
toXsdElement
public static java.lang.Object toXsdElement(java.lang.Object val,
javax.xml.namespace.QName elementName,
org.w3c.dom.Document doc)
throws javax.xml.bind.JAXBException
- Throws:
javax.xml.bind.JAXBException
toXsdElement
public static java.lang.Object toXsdElement(java.lang.Object val,
javax.xml.namespace.QName elementName,
org.w3c.dom.Document doc,
boolean recordType)
throws javax.xml.bind.JAXBException
- Parameters:
val
- elementName
- parentNode
- recordType
-
- Returns:
- created element
- Throws:
javax.xml.bind.JAXBException
canConvert
public static boolean canConvert(java.lang.Class<?> clazz)
toXMLGregorianCalendar
public static javax.xml.datatype.XMLGregorianCalendar toXMLGregorianCalendar(long timeInMillis)
toXMLGregorianCalendar
public static javax.xml.datatype.XMLGregorianCalendar toXMLGregorianCalendar(java.util.GregorianCalendar cal)
toMillis
public static long toMillis(javax.xml.datatype.XMLGregorianCalendar xmlCal)
appendBelowNode
public static void appendBelowNode(java.lang.Object val,
javax.xml.namespace.QName xsdType,
javax.xml.namespace.QName name,
org.w3c.dom.Node parentNode,
boolean recordType)
throws javax.xml.bind.JAXBException
- Parameters:
val
- xsdType
- name
- parentElement
- recordType
-
- Throws:
javax.xml.bind.JAXBException
Copyright © 2011 evolveum. All Rights Reserved.