public class NoExtendedContentField
extends java.lang.Object
List
.
List getXXX();
Since unmarshaller just adds new values into the storage, we can't fill the storage by default values at the time of instanciation. (or oherwise values found in the document will be appended to default values, where it should overwrite them.)
Therefore, when the object is created, the storage will be empty. When the getXXX method is called, we'll check if the storage is modified in anyway. If it is modified, it must mean that the values are found in the document, so we just return it. Otherwise we will fill in default values and return it to the user.
When a list has default values, its dirty flag is set to true. Marshaller will check this and treat it appropriately.
Modifier and Type | Field and Description |
---|---|
protected com.sun.codemodel.JCodeModel |
codeModel |
protected com.sun.codemodel.JType |
exposedType
The publicly visible type of this field.
|
protected com.sun.codemodel.JFieldVar |
field
The field that stores the list.
|
protected com.sun.codemodel.JType |
implType
The type of this field, which can hold all the possible types.
|
protected com.sun.codemodel.JClass |
listT |
protected ClassOutlineImpl |
outline |
protected com.sun.codemodel.JPrimitiveType |
primitiveType
If this collection property is a collection of a primitive type,
this variable refers to that primitive type.
|
protected CPropertyInfo |
prop |
Modifier | Constructor and Description |
---|---|
protected |
NoExtendedContentField(ClassOutlineImpl context,
CPropertyInfo prop,
com.sun.codemodel.JClass coreList) |
Modifier and Type | Method and Description |
---|---|
protected void |
annotate(com.sun.codemodel.JAnnotatable field)
Annotate the field according to the recipes given as
CPropertyInfo . |
protected com.sun.codemodel.JExpression |
castToImplType(com.sun.codemodel.JExpression exp)
Case from
exposedType to implType if necessary. |
com.sun.tools.xjc.generator.bean.field.NoExtendedContentField.Accessor |
create(com.sun.codemodel.JExpression targetObject)
Creates a new
FieldAccessor of this field
for the specified object. |
protected void |
fixNullRef(com.sun.codemodel.JBlock block)
Generates statement(s) so that the successive
Accessor#ref(boolean) with
true will always return a non-null list. |
protected void |
generate() |
void |
generateAccessors()
Generates accessor methods.
|
protected com.sun.codemodel.JFieldVar |
generateField(com.sun.codemodel.JType type)
Generates the field declaration.
|
protected com.sun.codemodel.JClass |
getCoreListType()
Concrete class that implements the List interface.
|
protected Options |
getOptions()
Gets the
Options in the current compilation context. |
CPropertyInfo |
getPropertyInfo()
Gets the corresponding model object.
|
com.sun.codemodel.JType |
getRawType()
Gets the type of the "raw value".
|
protected com.sun.codemodel.JType |
getType(Aspect aspect)
Compute the type of a
CPropertyInfo |
protected java.util.List<java.lang.Object> |
listPossibleTypes(CPropertyInfo prop)
Returns contents to be added to javadoc.
|
ClassOutline |
parent()
Gets the enclosing
ClassOutline . |
protected com.sun.codemodel.JFieldVar field
protected final com.sun.codemodel.JPrimitiveType primitiveType
protected final com.sun.codemodel.JClass listT
protected final ClassOutlineImpl outline
protected final CPropertyInfo prop
protected final com.sun.codemodel.JCodeModel codeModel
protected final com.sun.codemodel.JType implType
protected final com.sun.codemodel.JType exposedType
protected NoExtendedContentField(ClassOutlineImpl context, CPropertyInfo prop, com.sun.codemodel.JClass coreList)
coreList
- A concrete class that implements the List interface.
An instance of this class will be used to store data
for this field.protected final com.sun.codemodel.JClass getCoreListType()
public void generateAccessors()
public com.sun.tools.xjc.generator.bean.field.NoExtendedContentField.Accessor create(com.sun.codemodel.JExpression targetObject)
FieldOutline
FieldAccessor
of this field
for the specified object.targetObject
- Evaluates to an object, and the field on this object
will be accessed.protected com.sun.codemodel.JType getType(Aspect aspect)
CPropertyInfo
protected final void generate()
protected final void fixNullRef(com.sun.codemodel.JBlock block)
Accessor#ref(boolean)
with
true will always return a non-null list.
This is useful to avoid generating redundant internal getter.public com.sun.codemodel.JType getRawType()
FieldOutline
This type can represent the entire value of this field. For fields that can carry multiple values, this is an array.
This type allows the client of the outline to generate code to set/get values from a property.
public final ClassOutline parent()
FieldOutline
ClassOutline
.parent
in interface FieldOutline
public final CPropertyInfo getPropertyInfo()
FieldOutline
getPropertyInfo
in interface FieldOutline
protected void annotate(com.sun.codemodel.JAnnotatable field)
CPropertyInfo
.protected final Options getOptions()
Options
in the current compilation context.protected final com.sun.codemodel.JFieldVar generateField(com.sun.codemodel.JType type)
protected final com.sun.codemodel.JExpression castToImplType(com.sun.codemodel.JExpression exp)
exposedType
to implType
if necessary.protected final java.util.List<java.lang.Object> listPossibleTypes(CPropertyInfo prop)