Class SimpleTypeBuilder
- java.lang.Object
-
- com.sun.tools.xjc.reader.xmlschema.BindingComponent
-
- com.sun.tools.xjc.reader.xmlschema.SimpleTypeBuilder
-
public final class SimpleTypeBuilder extends BindingComponent
BuildsTypeUse
from simple types.This code consists of two main portions. The
compose(XSSimpleType)
method andcomposer
forms an outer cycle, which gradually ascends the type inheritance chain until it finds the suitable binding. When it does thisinitiatingType
is set to the type which started binding, so that we can refer to the actual constraint facets and such that are applicable on the type.For each intermediate type in the chain, the
find(XSSimpleType)
method is used to find the binding on that type, sine the outer loop is doing the ascending, this method only sees if the current type has some binding available.There is at least one ugly code that you need to aware of when you are modifying the code. See the documentation about "simple type customization at the point of reference."
- Author:
- Kohsuke Kawaguchi ([email protected])
-
-
Field Summary
Fields Modifier and Type Field Description protected BGMBuilder
builder
static Map<String,TypeUse>
builtinConversions
TypeUse
s for the built-in types.XSSimpleTypeFunction<TypeUse>
composer
Stack<XSComponent>
refererStack
The component that is refering to the simple type which we are building.
-
Constructor Summary
Constructors Constructor Description SimpleTypeBuilder()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description TypeUse
build(XSSimpleType type)
Entry point from outside.TypeUse
buildDef(XSSimpleType type)
A version of thebuild(XSSimpleType)
method used to bind the definition of a class generated from the given simple type.static boolean
canBeMappedToTypeSafeEnum(XSSimpleType type)
Returns true if the given simple type can be mapped to a type-safe enum class.XSComponent
getReferer()
boolean
isAcknowledgedXmimeContentTypes(XSComponent c)
-
Methods inherited from class com.sun.tools.xjc.reader.xmlschema.BindingComponent
getClassSelector, getErrorReporter
-
-
-
-
Field Detail
-
builder
protected final BGMBuilder builder
-
refererStack
public final Stack<XSComponent> refererStack
The component that is refering to the simple type which we are building. This is ugly but necessary to support the customization of simple types at its point of reference. See my comment at the header of this class for details. UGLY: Implemented as a Stack of XSComponent to fix a bug
-
builtinConversions
public static final Map<String,TypeUse> builtinConversions
TypeUse
s for the built-in types. Read-only.
-
composer
public final XSSimpleTypeFunction<TypeUse> composer
-
-
Method Detail
-
build
public TypeUse build(XSSimpleType type)
Entry point from outside. Builds a BGM type expression from a simple type schema component.- Parameters:
type
- the simple type to be bound.
-
buildDef
public TypeUse buildDef(XSSimpleType type)
A version of thebuild(XSSimpleType)
method used to bind the definition of a class generated from the given simple type.
-
getReferer
public XSComponent getReferer()
-
canBeMappedToTypeSafeEnum
public static boolean canBeMappedToTypeSafeEnum(XSSimpleType type)
Returns true if the given simple type can be mapped to a type-safe enum class.JAXB spec places a restrictrion as to what type can be mapped to a type-safe enum. This method enforces this constraint.
-
isAcknowledgedXmimeContentTypes
public boolean isAcknowledgedXmimeContentTypes(XSComponent c)
-
-