Class NoExtendedContentField
- All Implemented Interfaces:
FieldOutline
List.
List getXXX();
Default value handling
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.
- Author:
- Kohsuke Kawaguchi (kohsuke.kawaguchi@sun.com)
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected final JCodeModelprotected final JTypeThe publicly visible type of this field.protected JFieldVarThe field that stores the list.protected final JTypeThe type of this field, which can hold all the possible types.protected final JClassprotected final ClassOutlineImplprotected final JPrimitiveTypeIf this collection property is a collection of a primitive type, this variable refers to that primitive type.protected final CPropertyInfo -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedNoExtendedContentField(ClassOutlineImpl context, CPropertyInfo prop, JClass coreList) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidannotate(JAnnotatable field) Annotate the field according to the recipes given asCPropertyInfo.protected final JExpressionCase fromexposedTypetoimplTypeif necessary.com.sun.tools.xjc.generator.bean.field.NoExtendedContentField.Accessorcreate(JExpression targetObject) Creates a newFieldAccessorof this field for the specified object.protected final voidfixNullRef(JBlock block) Generates statement(s) so that the successiveAbstractListField.Accessor.ref(boolean)with true will always return a non-null list.protected final voidgenerate()voidGenerates accessor methods.protected final JFieldVargenerateField(JType type) Generates the field declaration.protected final JClassConcrete class that implements the List interface.protected final OptionsGets theOptionsin the current compilation context.final CPropertyInfoGets the corresponding model object.Gets the type of the "raw value".protected JTypeCompute the type of aCPropertyInfoReturns contents to be added to javadoc.final ClassOutlineparent()Gets the enclosingClassOutline.
-
Field Details
-
field
The field that stores the list. -
primitiveType
If this collection property is a collection of a primitive type, this variable refers to that primitive type. Otherwise null. -
listT
-
outline
-
prop
-
codeModel
-
implType
The type of this field, which can hold all the possible types. -
exposedType
The publicly visible type of this field. If we are generating value classes implType==exposedType.
-
-
Constructor Details
-
NoExtendedContentField
- Parameters:
coreList- A concrete class that implements the List interface. An instance of this class will be used to store data for this field.
-
-
Method Details
-
getCoreListType
Concrete class that implements the List interface. Used as the actual data storage. -
generateAccessors
public void generateAccessors()Generates accessor methods. -
create
public com.sun.tools.xjc.generator.bean.field.NoExtendedContentField.Accessor create(JExpression targetObject) Description copied from interface:FieldOutlineCreates a newFieldAccessorof this field for the specified object.- Parameters:
targetObject- Evaluates to an object, and the field on this object will be accessed.
-
getType
Compute the type of aCPropertyInfo -
generate
protected final void generate() -
fixNullRef
Generates statement(s) so that the successiveAbstractListField.Accessor.ref(boolean)with true will always return a non-null list. This is useful to avoid generating redundant internal getter. -
getRawType
Description copied from interface:FieldOutlineGets the type of the "raw value".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.
-
parent
Description copied from interface:FieldOutlineGets the enclosingClassOutline.- Specified by:
parentin interfaceFieldOutline
-
getPropertyInfo
Description copied from interface:FieldOutlineGets the corresponding model object.- Specified by:
getPropertyInfoin interfaceFieldOutline
-
annotate
Annotate the field according to the recipes given asCPropertyInfo. -
getOptions
Gets theOptionsin the current compilation context. -
generateField
Generates the field declaration. -
castToImplType
Case fromexposedTypetoimplTypeif necessary. -
listPossibleTypes
Returns contents to be added to javadoc.
-