com.sun.xml.bind.v2.model.impl
Class RuntimeBuiltinLeafInfoImpl<T>

java.lang.Object
  extended by com.sun.xml.bind.v2.model.impl.BuiltinLeafInfoImpl<java.lang.reflect.Type,java.lang.Class>
      extended by com.sun.xml.bind.v2.model.impl.RuntimeBuiltinLeafInfoImpl<T>
All Implemented Interfaces:
BuiltinLeafInfo<java.lang.reflect.Type,java.lang.Class>, LeafInfo<java.lang.reflect.Type,java.lang.Class>, MaybeElement<java.lang.reflect.Type,java.lang.Class>, NonElement<java.lang.reflect.Type,java.lang.Class>, TypeInfo<java.lang.reflect.Type,java.lang.Class>, RuntimeBuiltinLeafInfo, RuntimeLeafInfo, RuntimeNonElement, RuntimeTypeInfo, Location, Transducer<T>

public abstract class RuntimeBuiltinLeafInfoImpl<T>
extends BuiltinLeafInfoImpl<java.lang.reflect.Type,java.lang.Class>
implements RuntimeBuiltinLeafInfo, Transducer<T>

BuiltinLeafInfoImpl with a support for runtime.

In particular this class defines Transducers for the built-in types.


Field Summary
static java.util.List<RuntimeBuiltinLeafInfoImpl<?>> builtinBeanInfos
          List of all RuntimeBuiltinLeafInfoImpls.
static java.util.Map<java.lang.reflect.Type,RuntimeBuiltinLeafInfoImpl<?>> LEAVES
          All instances of RuntimeBuiltinLeafInfoImpls keyed by their type.
static java.lang.String MAP_ANYURI_TO_URI
           
static RuntimeBuiltinLeafInfoImpl<java.lang.String> STRING
           
 
Fields inherited from interface com.sun.xml.bind.v2.model.core.NonElement
ANYTYPE_NAME
 
Method Summary
 boolean canBeReferencedByIDREF()
          Deprecated. why are you calling a method whose return value is always known?
 void declareNamespace(T o, XMLSerializer w)
          Declares the namespace URIs used in the given value to w.
 java.lang.Class getClazz()
          The same as TypeInfo.getType() but returns the type as a Class.
 Location getLocation()
           
 Transducer getTransducer()
          This method doesn't take the reference properties defined on RuntimeNonElementRef into account (such as ID-ness.)
 TypeT getType()
          A reference to the representation of the type.
 javax.xml.namespace.QName getTypeName()
          Gets the primary XML type ANYTYPE_NAME of the class.
 javax.xml.namespace.QName getTypeName(T instance)
          Transducers implicitly work against a single XML type, but sometimes (most notably XMLGregorianCalendar, an instance may choose different XML types.
 Locatable getUpstream()
           
 boolean isDefault()
          If this Transducer is the default transducer for the ValueT, this method returns true.
 boolean isSimpleType()
          Returns true if this NonElement maps to text in XML, without any attribute nor child elements.
 java.lang.String toString()
          Returns a human-readable string that represents this position.
 boolean useNamespace()
          If true, this Transducer doesn't declare any namespace, and therefore Transducer.declareNamespace(Object, XMLSerializer) is no-op.
 
Methods inherited from class com.sun.xml.bind.v2.model.impl.BuiltinLeafInfoImpl
asElement, createLeaves, getElementName, getTypeNames, isElement
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface com.sun.xml.bind.v2.model.core.BuiltinLeafInfo
getTypeName
 
Methods inherited from interface com.sun.xml.bind.v2.model.runtime.RuntimeLeafInfo
getTypeNames
 
Methods inherited from interface com.sun.xml.bind.v2.model.core.MaybeElement
asElement, getElementName, isElement
 
Methods inherited from interface com.sun.xml.bind.v2.model.core.NonElement
isSimpleType
 
Methods inherited from interface com.sun.xml.bind.v2.model.core.TypeInfo
canBeReferencedByIDREF, getType
 
Methods inherited from interface com.sun.xml.bind.v2.runtime.Transducer
parse, print, writeLeafElement, writeText
 

Field Detail

LEAVES

public static final java.util.Map<java.lang.reflect.Type,RuntimeBuiltinLeafInfoImpl<?>> LEAVES
All instances of RuntimeBuiltinLeafInfoImpls keyed by their type.


STRING

public static final RuntimeBuiltinLeafInfoImpl<java.lang.String> STRING

builtinBeanInfos

public static final java.util.List<RuntimeBuiltinLeafInfoImpl<?>> builtinBeanInfos
List of all RuntimeBuiltinLeafInfoImpls.

This corresponds to the built-in Java classes that are specified to be handled differently than ordinary classes. See table 8-2 "Mapping of Standard Java classes".


MAP_ANYURI_TO_URI

public static final java.lang.String MAP_ANYURI_TO_URI
See Also:
Constant Field Values
Method Detail

getClazz

public final java.lang.Class getClazz()
Description copied from interface: RuntimeLeafInfo
The same as TypeInfo.getType() but returns the type as a Class.

Note that the returned Class object does not necessarily represents a class declaration. It can be primitive types.

Specified by:
getClazz in interface RuntimeLeafInfo

getTransducer

public final Transducer getTransducer()
Description copied from interface: RuntimeLeafInfo
This method doesn't take the reference properties defined on RuntimeNonElementRef into account (such as ID-ness.)

Specified by:
getTransducer in interface RuntimeLeafInfo
Specified by:
getTransducer in interface RuntimeNonElement
Returns:
always non-null.
See Also:
RuntimeNonElementRef.getTransducer()

useNamespace

public boolean useNamespace()
Description copied from interface: Transducer
If true, this Transducer doesn't declare any namespace, and therefore Transducer.declareNamespace(Object, XMLSerializer) is no-op. It also means that the Transducer.parse(CharSequence) method won't use the context parameter.

Specified by:
useNamespace in interface Transducer<T>

isDefault

public final boolean isDefault()
Description copied from interface: Transducer
If this Transducer is the default transducer for the ValueT, this method returns true. Used exclusively by OptimizedTransducedAccessorFactory.get(RuntimePropertyInfo)

Specified by:
isDefault in interface Transducer<T>

declareNamespace

public void declareNamespace(T o,
                             XMLSerializer w)
                      throws AccessorException
Description copied from interface: Transducer
Declares the namespace URIs used in the given value to w.

Specified by:
declareNamespace in interface Transducer<T>
Parameters:
o - never be null.
w - may be null if !{@link #useNamespace()}.
Throws:
AccessorException

getTypeName

public javax.xml.namespace.QName getTypeName(T instance)
Description copied from interface: Transducer
Transducers implicitly work against a single XML type, but sometimes (most notably XMLGregorianCalendar, an instance may choose different XML types.

Specified by:
getTypeName in interface Transducer<T>
Returns:
return non-null from this method allows transducers to specify the type it wants to marshal to. Most of the time this method returns null, in which case the implicitly associated type will be used.

getType

public TypeT getType()
A reference to the representation of the type.

Specified by:
getType in interface TypeInfo<TypeT,ClassDeclT>
Returns:
always non-null.

canBeReferencedByIDREF

public final boolean canBeReferencedByIDREF()
Deprecated. why are you calling a method whose return value is always known?

Leaf-type cannot be referenced from IDREF.

Specified by:
canBeReferencedByIDREF in interface TypeInfo<TypeT,ClassDeclT>

getTypeName

public javax.xml.namespace.QName getTypeName()
Description copied from interface: NonElement
Gets the primary XML type ANYTYPE_NAME of the class.

A Java type can be mapped to multiple XML types, but one of them is considered "primary" and used when we generate a schema.

Specified by:
getTypeName in interface NonElement<TypeT,ClassDeclT>
Returns:
null if the object doesn't have an explicit type ANYTYPE_NAME (AKA anonymous.)

getUpstream

public Locatable getUpstream()

getLocation

public Location getLocation()

isSimpleType

public boolean isSimpleType()
Description copied from interface: NonElement
Returns true if this NonElement maps to text in XML, without any attribute nor child elements.

Specified by:
isSimpleType in interface NonElement<TypeT,ClassDeclT>

toString

public java.lang.String toString()
Description copied from interface: Location
Returns a human-readable string that represents this position.

Specified by:
toString in interface Location
Overrides:
toString in class java.lang.Object
Returns:
never null.