- java.lang.Object
-
- org.glassfish.jaxb.runtime.v2.model.impl.ModelBuilder<Type,Class,Field,Method>
-
- org.glassfish.jaxb.runtime.v2.model.impl.RuntimeModelBuilder
-
- All Implemented Interfaces:
ModelBuilderI<Type,Class,Field,Method>
public class RuntimeModelBuilder extends ModelBuilder<Type,Class,Field,Method>
ModelBuilder
that works at the run-time by using thejava.lang.reflect
package.This extends
ModelBuilder
by providing more functionalities such as accessing the fields and classes.- Author:
- Kohsuke Kawaguchi ([email protected])
-
-
Field Summary
Fields Modifier and Type Field Description JAXBContextImpl
context
TheJAXBContextImpl
for which the model is built.-
Fields inherited from class org.glassfish.jaxb.runtime.v2.model.impl.ModelBuilder
defaultNsUri, hasSwaRef, nav, reader
-
-
Constructor Summary
Constructors Constructor Description RuntimeModelBuilder(JAXBContextImpl context, RuntimeAnnotationReader annotationReader, Map<Class,Class> subclassReplacements, String defaultNamespaceRemap)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description ArrayInfo<Type,Class>
createArrayInfo(Locatable upstream, Type arrayType)
protected ClassInfo<Type,Class>
createClassInfo(Class clazz, Locatable upstream)
ElementInfo<Type,Class>
createElementInfo(RegistryInfo<Type,Class> registryInfo, Method method)
protected EnumLeafInfo<Type,Class>
createEnumLeafInfo(Class clazz, Locatable upstream)
static <V> Transducer<V>
createTransducer(RuntimeNonElementRef ref)
Creates aTransducer
given a reference.protected TypeInfoSet<Type,Class,Field,Method>
createTypeInfoSet()
RuntimeNonElement
getClassInfo(Class clazz, boolean searchForSuperClass, Locatable upstream)
For limited cases where the caller needs to search for a super class.RuntimeNonElement
getClassInfo(Class clazz, Locatable upstream)
Builds a JAXBClassInfo
model from a given class declaration and adds that to this model owner.RuntimeTypeInfoSet
link()
Called after all the classes are added to the type set to "link" them together.-
Methods inherited from class org.glassfish.jaxb.runtime.v2.model.impl.ModelBuilder
addRegistry, getNavigator, getReader, getRegistry, getTypeInfo, getTypeInfo, isReplaced, reportError, setErrorHandler
-
-
-
-
Field Detail
-
context
@Nullable public final JAXBContextImpl context
TheJAXBContextImpl
for which the model is built. Null when created for reflection.
-
-
Constructor Detail
-
RuntimeModelBuilder
public RuntimeModelBuilder(JAXBContextImpl context, RuntimeAnnotationReader annotationReader, Map<Class,Class> subclassReplacements, String defaultNamespaceRemap)
-
-
Method Detail
-
getClassInfo
public RuntimeNonElement getClassInfo(Class clazz, Locatable upstream)
Description copied from class:ModelBuilder
Builds a JAXBClassInfo
model from a given class declaration and adds that to this model owner.Return type is either
ClassInfo
orLeafInfo
(for types likeString
orEnum
-derived ones)- Overrides:
getClassInfo
in classModelBuilder<Type,Class,Field,Method>
-
getClassInfo
public RuntimeNonElement getClassInfo(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 wantModelBuilder.subclassReplacements
to kick in for the super class search, which will cause infinite recursion.- Overrides:
getClassInfo
in classModelBuilder<Type,Class,Field,Method>
-
createEnumLeafInfo
protected EnumLeafInfo<Type,Class> createEnumLeafInfo(Class clazz, Locatable upstream)
- Overrides:
createEnumLeafInfo
in classModelBuilder<Type,Class,Field,Method>
-
createClassInfo
protected ClassInfo<Type,Class> createClassInfo(Class clazz, Locatable upstream)
- Overrides:
createClassInfo
in classModelBuilder<Type,Class,Field,Method>
-
createElementInfo
public ElementInfo<Type,Class> createElementInfo(RegistryInfo<Type,Class> registryInfo, Method method) throws IllegalAnnotationException
- Overrides:
createElementInfo
in classModelBuilder<Type,Class,Field,Method>
- Throws:
IllegalAnnotationException
-
createArrayInfo
public ArrayInfo<Type,Class> createArrayInfo(Locatable upstream, Type arrayType)
- Overrides:
createArrayInfo
in classModelBuilder<Type,Class,Field,Method>
-
createTypeInfoSet
protected TypeInfoSet<Type,Class,Field,Method> createTypeInfoSet()
- Overrides:
createTypeInfoSet
in classModelBuilder<Type,Class,Field,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 classModelBuilder<Type,Class,Field,Method>
- Returns:
- fully built
TypeInfoSet
that represents the model, or null if there was an error.
-
createTransducer
public static <V> Transducer<V> createTransducer(RuntimeNonElementRef ref)
Creates aTransducer
given a reference. Used to implementRuntimeNonElementRef.getTransducer()
. Shouldn't be called from anywhere else. TODO: this is not the proper place for this class to be in.
-
-