com.sun.xml.bind.v2.model.impl
Class RuntimeModelBuilder

java.lang.Object
  extended by com.sun.xml.bind.v2.model.impl.ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>
      extended by com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder

public class RuntimeModelBuilder
extends ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

ModelBuilder that works at the run-time by using the java.lang.reflect package.

This extends ModelBuilder by providing more functionalities such as accessing the fields and classes.


Field Summary
 JAXBContextImpl context
          The JAXBContextImpl for which the model is built.
 
Fields inherited from class com.sun.xml.bind.v2.model.impl.ModelBuilder
defaultNsUri, hasSwaRef, nav, reader
 
Constructor Summary
RuntimeModelBuilder(JAXBContextImpl context, RuntimeAnnotationReader annotationReader, java.util.Map<java.lang.Class,java.lang.Class> subclassReplacements, java.lang.String defaultNamespaceRemap)
           
 
Method Summary
 com.sun.xml.bind.v2.model.impl.RuntimeArrayInfoImpl createArrayInfo(Locatable upstream, java.lang.reflect.Type arrayType)
           
protected  com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl createClassInfo(java.lang.Class clazz, Locatable upstream)
           
 com.sun.xml.bind.v2.model.impl.RuntimeElementInfoImpl createElementInfo(com.sun.xml.bind.v2.model.impl.RegistryInfoImpl<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method> registryInfo, java.lang.reflect.Method method)
           
protected  com.sun.xml.bind.v2.model.impl.RuntimeEnumLeafInfoImpl createEnumLeafInfo(java.lang.Class clazz, Locatable upstream)
           
static Transducer createTransducer(RuntimeNonElementRef ref)
          Creates a Transducer given a reference.
protected  com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl createTypeInfoSet()
           
 RuntimeNonElement getClassInfo(java.lang.Class clazz, boolean searchForSuperClass, Locatable upstream)
          For limited cases where the caller needs to search for a super class.
 RuntimeNonElement getClassInfo(java.lang.Class clazz, Locatable upstream)
          Builds a JAXB ClassInfo model from a given class declaration and adds that to this model owner.
 ReflectionNavigator getNavigator()
           
 RuntimeTypeInfoSet link()
          Called after all the classes are added to the type set to "link" them together.
 
Methods inherited from class com.sun.xml.bind.v2.model.impl.ModelBuilder
addRegistry, getRegistry, getTypeInfo, getTypeInfo, isReplaced, reportError, setErrorHandler
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

context

@Nullable
public final JAXBContextImpl context
The JAXBContextImpl for which the model is built. Null when created for reflection.

Constructor Detail

RuntimeModelBuilder

public RuntimeModelBuilder(JAXBContextImpl context,
                           RuntimeAnnotationReader annotationReader,
                           java.util.Map<java.lang.Class,java.lang.Class> subclassReplacements,
                           java.lang.String defaultNamespaceRemap)
Method Detail

getClassInfo

public RuntimeNonElement getClassInfo(java.lang.Class clazz,
                                      Locatable upstream)
Description copied from class: ModelBuilder
Builds a JAXB ClassInfo model from a given class declaration and adds that to this model owner.

Return type is either ClassInfo or LeafInfo (for types like String or Enum-derived ones)

Overrides:
getClassInfo in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

getClassInfo

public RuntimeNonElement getClassInfo(java.lang.Class clazz,
                                      boolean searchForSuperClass,
                                      Locatable upstream)
Description copied from class: ModelBuilder
For limited cases where the caller needs to search for a super class. This is necessary because we don't want ModelBuilder.subclassReplacements to kick in for the super class search, which will cause infinite recursion.

Overrides:
getClassInfo in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

createEnumLeafInfo

protected com.sun.xml.bind.v2.model.impl.RuntimeEnumLeafInfoImpl createEnumLeafInfo(java.lang.Class clazz,
                                                                                    Locatable upstream)
Overrides:
createEnumLeafInfo in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

createClassInfo

protected com.sun.xml.bind.v2.model.impl.RuntimeClassInfoImpl createClassInfo(java.lang.Class clazz,
                                                                              Locatable upstream)
Overrides:
createClassInfo in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

createElementInfo

public com.sun.xml.bind.v2.model.impl.RuntimeElementInfoImpl createElementInfo(com.sun.xml.bind.v2.model.impl.RegistryInfoImpl<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method> registryInfo,
                                                                               java.lang.reflect.Method method)
                                                                        throws IllegalAnnotationException
Overrides:
createElementInfo in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>
Throws:
IllegalAnnotationException

createArrayInfo

public com.sun.xml.bind.v2.model.impl.RuntimeArrayInfoImpl createArrayInfo(Locatable upstream,
                                                                           java.lang.reflect.Type arrayType)
Overrides:
createArrayInfo in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

getNavigator

public ReflectionNavigator getNavigator()

createTypeInfoSet

protected com.sun.xml.bind.v2.model.impl.RuntimeTypeInfoSetImpl createTypeInfoSet()
Overrides:
createTypeInfoSet in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>

link

public RuntimeTypeInfoSet link()
Description copied from class: ModelBuilder
Called after all the classes are added to the type set to "link" them together.

Don't expose implementation classes in the signature.

Overrides:
link in class ModelBuilder<java.lang.reflect.Type,java.lang.Class,java.lang.reflect.Field,java.lang.reflect.Method>
Returns:
fully built TypeInfoSet that represents the model, or null if there was an error.

createTransducer

public static Transducer createTransducer(RuntimeNonElementRef ref)
Creates a Transducer given a reference. Used to implement RuntimeNonElementRef.getTransducer(). Shouldn't be called from anywhere else. TODO: this is not the proper place for this class to be in.