public class ModelBuilder<T,C,F,M> extends Object implements ModelBuilderI<T,C,F,M>
TypeInfoSet (a set of JAXB properties)
by using ElementInfoImpl and ClassInfoImpl.
from annotated Java classes.
This class uses Navigator and AnnotationReader to
work with arbitrary annotation source and arbitrary Java model.
For this purpose this class is parameterized.
| Modifier and Type | Field and Description |
|---|---|
String |
defaultNsUri
JAXB doesn't want to use namespaces unless we are told to, but WS-I BP
conformace requires JAX-RPC to always use a non-empty namespace URI.
|
boolean |
hasSwaRef
Set to true if the model includes
XmlAttachmentRef. |
com.sun.xml.bind.v2.model.nav.Navigator<T,C,F,M> |
nav |
AnnotationReader<T,C,F,M> |
reader |
| Constructor and Description |
|---|
ModelBuilder(AnnotationReader<T,C,F,M> reader,
com.sun.xml.bind.v2.model.nav.Navigator<T,C,F,M> navigator,
Map<C,C> subclassReplacements,
String defaultNamespaceRemap) |
public final AnnotationReader<T,C,F,M> reader
public final com.sun.xml.bind.v2.model.nav.Navigator<T,C,F,M> nav
public final String defaultNsUri
To work around this issue, we allow the use of the empty namespaces to be replaced by a particular designated namespace URI.
This field keeps the value of that replacing namespace URI. When there's no replacement, this field is set to "".
public boolean hasSwaRef
XmlAttachmentRef. JAX-WS
needs to know this information.protected com.sun.xml.bind.v2.model.impl.TypeInfoSetImpl<T,C,F,M> createTypeInfoSet()
public com.sun.xml.bind.v2.model.core.NonElement<T,C> getClassInfo(C clazz, Locatable upstream)
public com.sun.xml.bind.v2.model.core.NonElement<T,C> getClassInfo(C clazz, boolean searchForSuperClass, Locatable upstream)
subclassReplacements
to kick in for the super class search, which will cause infinite recursion.public com.sun.xml.bind.v2.model.core.NonElement<T,C> getTypeInfo(T t, Locatable upstream)
NonElement that represents it.public com.sun.xml.bind.v2.model.core.NonElement<T,C> getTypeInfo(com.sun.xml.bind.v2.model.core.Ref<T,C> ref)
protected com.sun.xml.bind.v2.model.impl.EnumLeafInfoImpl<T,C,F,M> createEnumLeafInfo(C clazz, Locatable upstream)
protected com.sun.xml.bind.v2.model.impl.ElementInfoImpl<T,C,F,M> createElementInfo(com.sun.xml.bind.v2.model.impl.RegistryInfoImpl<T,C,F,M> registryInfo, M m) throws IllegalAnnotationException
IllegalAnnotationExceptionpublic com.sun.xml.bind.v2.model.core.RegistryInfo<T,C> addRegistry(C registryClass, Locatable upstream)
XmlRegistry and records all the element mappings
in it.public com.sun.xml.bind.v2.model.core.RegistryInfo<T,C> getRegistry(String packageName)
RegistryInfo for the given package.public com.sun.xml.bind.v2.model.core.TypeInfoSet<T,C,F,M> link()
Don't expose implementation classes in the signature.
TypeInfoSet that represents the model,
or null if there was an error.public void setErrorHandler(com.sun.xml.bind.v2.model.core.ErrorHandler errorHandler)
errorHandler - can be null.public final void reportError(IllegalAnnotationException e)
public boolean isReplaced(C sc)
public com.sun.xml.bind.v2.model.nav.Navigator<T,C,F,M> getNavigator()
getNavigator in interface ModelBuilderI<T,C,F,M>Copyright © 2015 Oracle Corporation. All Rights Reserved.