Class ClassBeanInfoImpl<BeanT>
- java.lang.Object
-
- com.sun.xml.bind.v2.runtime.JaxBeanInfo<BeanT>
-
- 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.- Author:
- Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
-
-
Field Summary
Fields Modifier and Type Field Description Property<BeanT>[]
properties
Properties of this bean class but not its ancestor classes.ClassBeanInfoImpl<? super BeanT>
superClazz
ClassBeanInfoImpl
that represents the super class ofJaxBeanInfo.jaxbType
.-
Fields inherited from class com.sun.xml.bind.v2.runtime.JaxBeanInfo
flag, isNilIncluded, jaxbType
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description BeanT
createInstance(UnmarshallingContext context)
Creates a new instance of the bean.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.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.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 theLoader
that will unmarshall the given object.Transducer<BeanT>
getTransducer()
If the bean's representation in XML is just a text, this method return aTransducer
that lets you convert values between the text and the bean.protected void
link(JAXBContextImpl grammar)
Called after all theJaxBeanInfo
s 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 theJAXBContext
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 ofJaxBeanInfo.jaxbType
.
-
-
Method Detail
-
link
protected void link(JAXBContextImpl grammar)
Description copied from class:JaxBeanInfo
Called after all theJaxBeanInfo
s are created.- Overrides:
link
in classJaxBeanInfo<BeanT>
-
wrapUp
public void wrapUp()
Description copied from class:JaxBeanInfo
Called at the end of theJAXBContext
initialization phase to clean up any unnecessary references.- Overrides:
wrapUp
in classJaxBeanInfo<BeanT>
-
getElementNamespaceURI
public 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 classJaxBeanInfo<BeanT>
-
getElementLocalName
public 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 classJaxBeanInfo<BeanT>
-
createInstance
public BeanT createInstance(UnmarshallingContext context) throws IllegalAccessException, InvocationTargetException, InstantiationException, 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 classJaxBeanInfo<BeanT>
- Parameters:
context
- Sometimes the created bean remembers the corresponding source location,- Throws:
IllegalAccessException
InvocationTargetException
InstantiationException
SAXException
-
reset
public boolean reset(BeanT bean, UnmarshallingContext context) throws 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 classJaxBeanInfo<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:
SAXException
- as a result of reporting an error, the context may throw aSAXException
.
-
getId
public String getId(BeanT bean, XMLSerializer target) throws 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 classJaxBeanInfo<BeanT>
- Throws:
SAXException
-
serializeRoot
public void serializeRoot(BeanT bean, XMLSerializer target) throws SAXException, IOException, 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 classJaxBeanInfo<BeanT>
- Throws:
SAXException
IOException
XMLStreamException
-
serializeBody
public void serializeBody(BeanT bean, XMLSerializer target) throws SAXException, IOException, XMLStreamException
Description copied from class:JaxBeanInfo
Serializes child elements and texts into the specified target.- Specified by:
serializeBody
in classJaxBeanInfo<BeanT>
- Throws:
SAXException
IOException
XMLStreamException
-
serializeAttributes
public void serializeAttributes(BeanT bean, XMLSerializer target) throws SAXException, IOException, XMLStreamException
Description copied from class:JaxBeanInfo
Serializes attributes into the specified target.- Specified by:
serializeAttributes
in classJaxBeanInfo<BeanT>
- Throws:
SAXException
IOException
XMLStreamException
-
serializeURIs
public void serializeURIs(BeanT bean, XMLSerializer target) throws 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 classJaxBeanInfo<BeanT>
- Throws:
SAXException
-
getLoader
public Loader getLoader(JAXBContextImpl context, boolean typeSubstitutionCapable)
Description copied from class:JaxBeanInfo
Gets theLoader
that will unmarshall the given object.- Specified by:
getLoader
in classJaxBeanInfo<BeanT>
- Parameters:
context
- TheJAXBContextImpl
object that governs this object. This object is taken as a parameter so thatJaxBeanInfo
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 returnedLoader
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 returnedLoader
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 aTransducer
that lets you convert values between the text and the bean.- Specified by:
getTransducer
in classJaxBeanInfo<BeanT>
-
-