com.evolveum.midpoint.schema
Class XsdTypeConverter

java.lang.Object
  extended by 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

Constructor Summary
XsdTypeConverter()
           
 
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
<T> T
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
 

Constructor Detail

XsdTypeConverter

public XsdTypeConverter()
Method Detail

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.