- java.lang.Object
-
- com.sun.tools.xjc.generator.bean.field.SingleField
-
- All Implemented Interfaces:
FieldOutline
- Direct Known Subclasses:
SinglePrimitiveAccessField
public class SingleField extends Object
Realizes a property through one getter and one setter. This renders:T' field; T getXXX() { ... } void setXXX(T value) { ... }
Normally T'=T, but under some tricky circumstances they could be different (like T'=Integer, T=int.) This realization is only applicable to fields with (1,1) or (0,1) multiplicity.
- Author:
- Kohsuke Kawaguchi ([email protected])
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description protected class
SingleField.Accessor
-
Field Summary
Fields Modifier and Type Field Description protected JCodeModel
codeModel
protected JType
exposedType
The publicly visible type of this field.protected JType
implType
The type of this field, which can hold all the possible types.protected ClassOutlineImpl
outline
protected CPropertyInfo
prop
-
Constructor Summary
Constructors Modifier Constructor Description protected
SingleField(ClassOutlineImpl context, CPropertyInfo prop)
protected
SingleField(ClassOutlineImpl context, CPropertyInfo prop, boolean forcePrimitiveAccess)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
annotate(JAnnotatable field)
Annotate the field according to the recipes given asCPropertyInfo
.protected JExpression
castToImplType(JExpression exp)
Case fromexposedType
toimplType
if necessary.FieldAccessor
create(JExpression targetObject)
Creates a newFieldAccessor
of this field for the specified object.protected void
createField()
protected JFieldVar
generateField(JType type)
Generates the field declaration.JType
getFieldType()
Returns the type used to store the value of the field in memory.protected String
getGetterMethod()
Gets the name of the getter method.protected Options
getOptions()
Gets theOptions
in the current compilation context.CPropertyInfo
getPropertyInfo()
Gets the corresponding model object.JType
getRawType()
Gets the type of the "raw value".protected JType
getType(Aspect aspect)
Compute the type of aCPropertyInfo
protected List<Object>
listPossibleTypes(CPropertyInfo prop)
Returns contents to be added to javadoc.ClassOutline
parent()
Gets the enclosingClassOutline
.protected JFieldVar
ref()
-
-
-
Field Detail
-
outline
protected final ClassOutlineImpl outline
-
prop
protected final CPropertyInfo prop
-
codeModel
protected final JCodeModel codeModel
-
implType
protected final JType implType
The type of this field, which can hold all the possible types.
-
exposedType
protected final JType exposedType
The publicly visible type of this field. If we are generating value classes implType==exposedType.
-
-
Constructor Detail
-
SingleField
protected SingleField(ClassOutlineImpl context, CPropertyInfo prop)
-
SingleField
protected SingleField(ClassOutlineImpl context, CPropertyInfo prop, boolean forcePrimitiveAccess)
- Parameters:
forcePrimitiveAccess
- forces the setter/getter to expose the primitive type. it's a pointless customization, but it's nevertheless in the spec.
-
-
Method Detail
-
getFieldType
public final JType getFieldType()
Returns the type used to store the value of the field in memory.
-
create
public FieldAccessor create(JExpression targetObject)
Description copied from interface:FieldOutline
Creates a newFieldAccessor
of this field for the specified object.- Parameters:
targetObject
- Evaluates to an object, and the field on this object will be accessed.
-
createField
protected final void createField()
-
getGetterMethod
protected String getGetterMethod()
Gets the name of the getter method.This encapsulation is necessary because sometimes we use
isXXXX
as the method name.
-
ref
protected JFieldVar ref()
-
getRawType
public final JType getRawType()
Description copied from interface:FieldOutline
Gets 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
public final ClassOutline parent()
Description copied from interface:FieldOutline
Gets the enclosingClassOutline
.- Specified by:
parent
in interfaceFieldOutline
-
getPropertyInfo
public final CPropertyInfo getPropertyInfo()
Description copied from interface:FieldOutline
Gets the corresponding model object.- Specified by:
getPropertyInfo
in interfaceFieldOutline
-
annotate
protected void annotate(JAnnotatable field)
Annotate the field according to the recipes given asCPropertyInfo
.
-
getOptions
protected final Options getOptions()
Gets theOptions
in the current compilation context.
-
castToImplType
protected final JExpression castToImplType(JExpression exp)
Case fromexposedType
toimplType
if necessary.
-
getType
protected JType getType(Aspect aspect)
Compute the type of aCPropertyInfo
-
listPossibleTypes
protected final List<Object> listPossibleTypes(CPropertyInfo prop)
Returns contents to be added to javadoc.
-
-