com.sun.xml.bind.v2.runtime
Class ClassBeanInfoImpl<BeanT>

java.lang.Object
  extended by com.sun.xml.bind.v2.runtime.JaxBeanInfo<BeanT>
      extended by com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl<BeanT>
All Implemented Interfaces:
AttributeAccessor<BeanT>

public final class ClassBeanInfoImpl<BeanT>
extends JaxBeanInfo<BeanT>
implements AttributeAccessor<BeanT>

JaxBeanInfo implementation for j2s bean.


Field Summary
 Property<BeanT>[] properties
          Properties of this bean class but not its ancestor classes.
 ClassBeanInfoImpl<? super BeanT> superClazz
          ClassBeanInfoImpl that represents the super class of JaxBeanInfo.jaxbType.
 
Fields inherited from class com.sun.xml.bind.v2.runtime.JaxBeanInfo
flag, jaxbType
 
Method Summary
 BeanT createInstance(UnmarshallingContext context)
          Creates a new instance of the bean.
 java.lang.String getElementLocalName(BeanT bean)
          Returns the local name portion of the element name, if the bean that this class represents is mapped from/to an XML element.
 java.lang.String getElementNamespaceURI(BeanT bean)
          Returns the namespace URI portion of the element name, if the bean that this class represents is mapped from/to an XML element.
 java.lang.String getId(BeanT bean, XMLSerializer target)
          Gets the ID value of the given bean, if it has an ID value.
 Loader getLoader(JAXBContextImpl context, boolean typeSubstitutionCapable)
          Gets the Loader that will unmarshall the given object.
 Transducer<BeanT> getTransducer()
          If the bean's representation in XML is just a text, this method return a Transducer that lets you convert values between the text and the bean.
protected  void link(JAXBContextImpl grammar)
          Called after all the JaxBeanInfos are created.
 boolean reset(BeanT bean, UnmarshallingContext context)
          Resets the object to the initial state, as if the object is created fresh.
 void serializeAttributes(BeanT bean, XMLSerializer target)
          Serializes attributes into the specified target.
 void serializeBody(BeanT bean, XMLSerializer target)
          Serializes child elements and texts into the specified target.
 void serializeRoot(BeanT bean, XMLSerializer target)
          Serializes the bean as the root element.
 void serializeURIs(BeanT bean, XMLSerializer target)
          Declares all the namespace URIs this object is using at its top-level scope into the specified target.
 void wrapUp()
          Called at the end of the JAXBContext initialization phase to clean up any unnecessary references.
 
Methods inherited from class com.sun.xml.bind.v2.runtime.JaxBeanInfo
getLifecycleMethods, getTypeName, getTypeNames, hasAfterMarshalMethod, hasAfterUnmarshalMethod, hasBeforeMarshalMethod, hasBeforeUnmarshalMethod, hasElementOnlyContentModel, hasElementOnlyContentModel, invokeAfterUnmarshalMethod, invokeBeforeUnmarshalMethod, isElement, isImmutable, isNilIncluded, lookForLifecycleMethods, setLifecycleFlags
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface com.sun.xml.bind.v2.runtime.AttributeAccessor
isNilIncluded
 

Field Detail

properties

public final Property<BeanT>[] properties
Properties of this bean class but not its ancestor classes.


superClazz

public final ClassBeanInfoImpl<? super BeanT> superClazz
ClassBeanInfoImpl that represents the super class of JaxBeanInfo.jaxbType.

Method Detail

link

protected void link(JAXBContextImpl grammar)
Description copied from class: JaxBeanInfo
Called after all the JaxBeanInfos are created.

Overrides:
link in class JaxBeanInfo<BeanT>

wrapUp

public void wrapUp()
Description copied from class: JaxBeanInfo
Called at the end of the JAXBContext initialization phase to clean up any unnecessary references.

Overrides:
wrapUp in class JaxBeanInfo<BeanT>

getElementNamespaceURI

public java.lang.String getElementNamespaceURI(BeanT bean)
Description copied from class: JaxBeanInfo
Returns the namespace URI portion of the element name, if the bean that this class represents is mapped from/to an XML element.

Specified by:
getElementNamespaceURI in class JaxBeanInfo<BeanT>

getElementLocalName

public java.lang.String getElementLocalName(BeanT bean)
Description copied from class: JaxBeanInfo
Returns the local name portion of the element name, if the bean that this class represents is mapped from/to an XML element.

Specified by:
getElementLocalName in class JaxBeanInfo<BeanT>

createInstance

public BeanT createInstance(UnmarshallingContext context)
                     throws java.lang.IllegalAccessException,
                            java.lang.reflect.InvocationTargetException,
                            java.lang.InstantiationException,
                            org.xml.sax.SAXException
Description copied from class: JaxBeanInfo
Creates a new instance of the bean.

This operation is only supported when JaxBeanInfo.isImmutable() is false.

Specified by:
createInstance in class JaxBeanInfo<BeanT>
Parameters:
context - Sometimes the created bean remembers the corresponding source location,
Throws:
java.lang.IllegalAccessException
java.lang.reflect.InvocationTargetException
java.lang.InstantiationException
org.xml.sax.SAXException

reset

public boolean reset(BeanT bean,
                     UnmarshallingContext context)
              throws org.xml.sax.SAXException
Description copied from class: JaxBeanInfo
Resets the object to the initial state, as if the object is created fresh.

This is used to reuse an existing object for unmarshalling.

Specified by:
reset in class JaxBeanInfo<BeanT>
context - used for reporting any errors.
Returns:
true if the object was successfuly resetted. False if the object is not resettable, in which case the object will be discarded and new one will be created.

If the object is resettable but failed by an error, it should be reported to the context, then return false. If the object is not resettable to begin with, do not report an error.

Throws:
org.xml.sax.SAXException - as a result of reporting an error, the context may throw a SAXException.

getId

public java.lang.String getId(BeanT bean,
                              XMLSerializer target)
                       throws org.xml.sax.SAXException
Description copied from class: JaxBeanInfo
Gets the ID value of the given bean, if it has an ID value. Otherwise return null.

Specified by:
getId in class JaxBeanInfo<BeanT>
Throws:
org.xml.sax.SAXException

serializeRoot

public void serializeRoot(BeanT bean,
                          XMLSerializer target)
                   throws org.xml.sax.SAXException,
                          java.io.IOException,
                          javax.xml.stream.XMLStreamException
Description copied from class: JaxBeanInfo
Serializes the bean as the root element.

In the java-to-schema binding, an object might marshal in two different ways depending on whether it is used as the root of the graph or not. In the former case, an object could marshal as an element, whereas in the latter case, it marshals as a type.

This method is used to marshal the root of the object graph to allow this semantics to be implemented.

It is doubtful to me if it's a good idea for an object to marshal in two ways depending on the context.

For schema-to-java, this is equivalent to JaxBeanInfo.serializeBody(Object, XMLSerializer).

Specified by:
serializeRoot in class JaxBeanInfo<BeanT>
Throws:
org.xml.sax.SAXException
java.io.IOException
javax.xml.stream.XMLStreamException

serializeBody

public void serializeBody(BeanT bean,
                          XMLSerializer target)
                   throws org.xml.sax.SAXException,
                          java.io.IOException,
                          javax.xml.stream.XMLStreamException
Description copied from class: JaxBeanInfo
Serializes child elements and texts into the specified target.

Specified by:
serializeBody in class JaxBeanInfo<BeanT>
Throws:
org.xml.sax.SAXException
java.io.IOException
javax.xml.stream.XMLStreamException

serializeAttributes

public void serializeAttributes(BeanT bean,
                                XMLSerializer target)
                         throws org.xml.sax.SAXException,
                                java.io.IOException,
                                javax.xml.stream.XMLStreamException
Description copied from class: JaxBeanInfo
Serializes attributes into the specified target.

Specified by:
serializeAttributes in class JaxBeanInfo<BeanT>
Throws:
org.xml.sax.SAXException
java.io.IOException
javax.xml.stream.XMLStreamException

serializeURIs

public void serializeURIs(BeanT bean,
                          XMLSerializer target)
                   throws org.xml.sax.SAXException
Description copied from class: JaxBeanInfo
Declares all the namespace URIs this object is using at its top-level scope into the specified target.

Specified by:
serializeURIs in class JaxBeanInfo<BeanT>
Throws:
org.xml.sax.SAXException

getLoader

public Loader getLoader(JAXBContextImpl context,
                        boolean typeSubstitutionCapable)
Description copied from class: JaxBeanInfo
Gets the Loader that will unmarshall the given object.

Specified by:
getLoader in class JaxBeanInfo<BeanT>
Parameters:
context - The JAXBContextImpl object that governs this object. This object is taken as a parameter so that JaxBeanInfo doesn't have to store them on its own. When this method is invoked from within the unmarshaller, tihs parameter can be null (because the loader is constructed already.)
typeSubstitutionCapable - If true, the returned Loader is capable of recognizing @xsi:type (if necessary) and unmarshals a subtype. This allowes an optimization where this bean info is guaranteed not to have a type substitution. If false, the returned Loader doesn't look for @xsi:type.
Returns:
must return non-null valid object

getTransducer

public Transducer<BeanT> getTransducer()
Description copied from class: JaxBeanInfo
If the bean's representation in XML is just a text, this method return a Transducer that lets you convert values between the text and the bean.

Specified by:
getTransducer in class JaxBeanInfo<BeanT>