Class TransducedAccessor<BeanT>
java.lang.Object
com.sun.xml.bind.v2.runtime.reflect.TransducedAccessor<BeanT>
- Direct Known Subclasses:
DefaultTransducedAccessor,TransducedAccessor.CompositeTransducedAccessorImpl
Accessor and Transducer combined into one object.
This allows efficient conversions between primitive values and String without using boxing.
This abstraction only works for a single-value property.
An instance of TransducedAccessor implicitly holds a
field of the BeanT that the accessors access.
- Author:
- Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidObtain the value of the field and declares the namespace URIs used in the value.static <T> TransducedAccessor<T>get(JAXBContextImpl context, RuntimeNonElementRef ref) Gets theTransducedAccessorappropriately configured for the given property.abstract booleanChecks if the field has a value.abstract voidparse(BeanT o, CharSequence lexical) Parses the text value into the responsible field of the given bean.abstract CharSequencePrints the responsible field of the given bean to the writer.booleanabstract voidwriteLeafElement(XMLSerializer w, Name tagName, BeanT o, String fieldName) Convenience method to write the value as a text inside an element without any attributes.abstract voidwriteText(XMLSerializer w, BeanT o, String fieldName) Invokes one of theXMLSerializer.text(String, String)method with the representation of data bested suited for this transduced accessor.
-
Constructor Details
-
TransducedAccessor
public TransducedAccessor()
-
-
Method Details
-
useNamespace
public boolean useNamespace()- See Also:
-
declareNamespace
Obtain the value of the field and declares the namespace URIs used in the value.- Throws:
AccessorExceptionSAXException- See Also:
-
print
@Nullable public abstract CharSequence print(@NotNull BeanT o) throws AccessorException, SAXException Prints the responsible field of the given bean to the writer.Use
XMLSerializer.getInstance()to access to the namespace bindings- Returns:
- if the accessor didn't yield a value, return null.
- Throws:
AccessorExceptionSAXException
-
parse
Parses the text value into the responsible field of the given bean.Use
UnmarshallingContext.getInstance()to access to the namespace bindings- Throws:
AccessorException- if the transducer is used to parse an user bean that usesXmlValue, then this exception may occur when it tries to set the leaf value to the bean.RuntimeException- if the lexical form is incorrect. The method may throw a RuntimeException, but it shouldn't cause the entire unmarshalling to fail.SAXException- if the parse method found an error, the error is reported, and then the processing is aborted.
-
hasValue
Checks if the field has a value.- Throws:
AccessorException
-
get
Gets theTransducedAccessorappropriately configured for the given property.This allows the implementation to use an optimized code.
-
writeLeafElement
public abstract void writeLeafElement(XMLSerializer w, Name tagName, BeanT o, String fieldName) throws SAXException, AccessorException, IOException, XMLStreamException Convenience method to write the value as a text inside an element without any attributes. Can be overridden for improved performance.The callee assumes that there's an associated value in the field. No @xsi:type handling is expected.
-
writeText
public abstract void writeText(XMLSerializer w, BeanT o, String fieldName) throws AccessorException, SAXException, IOException, XMLStreamException Invokes one of theXMLSerializer.text(String, String)method with the representation of data bested suited for this transduced accessor.
-