| java.lang.Object com.sun.xml.bind.v2.model.impl.ModelBuilder
ModelBuilder | public class ModelBuilder (Code) | | Builds a
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.
author: Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com) |
Field Summary | |
final public 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. | public boolean | hasSwaRef Set to true if the model includes
XmlAttachmentRef . | final public Navigator<T, C, F, M> | nav | final public AnnotationReader<T, C, F, M> | reader | final Map<String, RegistryInfoImpl<T, C, F, M>> | registries Packages whose registries are already added. | final TypeInfoSetImpl<T, C, F, M> | typeInfoSet TypeInfo s that are built will go into this set. |
Constructor Summary | |
public | ModelBuilder(AnnotationReader<T, C, F, M> reader, Navigator<T, C, F, M> navigator, Map<C, C> subclassReplacements, String defaultNamespaceRemap) |
Method Summary | |
public RegistryInfo<T, C> | addRegistry(C registryClass, Locatable upstream) Visits a class with
XmlRegistry and records all the element mappings
in it. | protected ArrayInfoImpl<T, C, F, M> | createArrayInfo(Locatable upstream, T arrayType) | protected ClassInfoImpl<T, C, F, M> | createClassInfo(C clazz, Locatable upstream) | protected ElementInfoImpl<T, C, F, M> | createElementInfo(RegistryInfoImpl<T, C, F, M> registryInfo, M m) | protected EnumLeafInfoImpl<T, C, F, M> | createEnumLeafInfo(C clazz, Locatable upstream) | protected TypeInfoSetImpl<T, C, F, M> | createTypeInfoSet() | public NonElement<T, C> | getClassInfo(C clazz, Locatable upstream) Builds a JAXB
ClassInfo model from a given class declaration
and adds that to this model owner. | public NonElement<T, C> | getClassInfo(C clazz, boolean searchForSuperClass, Locatable upstream) For limited cases where the caller needs to search for a super class. | public RegistryInfo<T, C> | getRegistry(String packageName) Gets a
RegistryInfo for the given package. | public NonElement<T, C> | getTypeInfo(T t, Locatable upstream) Have the builder recognize the type (if it hasn't done so yet),
and returns a
NonElement that represents it. | public NonElement<T, C> | getTypeInfo(Ref<T, C> ref) This method is used to add a root reference to a model. | public boolean | isReplaced(C sc) | public TypeInfoSet<T, C, F, M> | link() Called after all the classes are added to the type set
to "link" them together. | final public void | reportError(IllegalAnnotationException e) | public void | setErrorHandler(ErrorHandler errorHandler) Sets the error handler that receives errors discovered during the model building. |
defaultNsUri | final public String defaultNsUri(Code) | | 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.
(see http://www.ws-i.org/Profiles/BasicProfile-1.0-2004-04-16.html#WSDLTYPES R2105)
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 "".
|
hasSwaRef | public boolean hasSwaRef(Code) | | Set to true if the model includes
XmlAttachmentRef . JAX-WS
needs to know this information.
|
ModelBuilder | public ModelBuilder(AnnotationReader<T, C, F, M> reader, Navigator<T, C, F, M> navigator, Map<C, C> subclassReplacements, String defaultNamespaceRemap)(Code) | | |
getClassInfo | public NonElement<T, C> getClassInfo(C clazz, boolean searchForSuperClass, Locatable upstream)(Code) | | 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.
|
getRegistry | public RegistryInfo<T, C> getRegistry(String packageName)(Code) | | Gets a
RegistryInfo for the given package.
null if no registry exists for the package.unlike other getXXX methods on this class,this method is side-effect free. |
getTypeInfo | public NonElement<T, C> getTypeInfo(T t, Locatable upstream)(Code) | | Have the builder recognize the type (if it hasn't done so yet),
and returns a
NonElement that represents it.
always non-null. |
getTypeInfo | public NonElement<T, C> getTypeInfo(Ref<T, C> ref)(Code) | | This method is used to add a root reference to a model.
|
isReplaced | public boolean isReplaced(C sc)(Code) | | |
link | public TypeInfoSet<T, C, F, M> link()(Code) | | Called after all the classes are added to the type set
to "link" them together.
Don't expose implementation classes in the signature.
fully built TypeInfoSet that represents the model,or null if there was an error. |
setErrorHandler | public void setErrorHandler(ErrorHandler errorHandler)(Code) | | Sets the error handler that receives errors discovered during the model building.
Parameters: errorHandler - can be null. |
|
|