public class SingleField
extends java.lang.Object
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.
Modifier and Type | Class and Description |
---|---|
protected class |
SingleField.Accessor |
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.JType |
implType
The type of this field, which can hold all the possible types.
|
protected ClassOutlineImpl |
outline |
protected CPropertyInfo |
prop |
Modifier | Constructor and Description |
---|---|
protected |
SingleField(ClassOutlineImpl context,
CPropertyInfo prop) |
protected |
SingleField(ClassOutlineImpl context,
CPropertyInfo prop,
boolean forcePrimitiveAccess) |
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. |
FieldAccessor |
create(com.sun.codemodel.JExpression targetObject)
Creates a new
FieldAccessor of this field
for the specified object. |
protected void |
createField() |
protected com.sun.codemodel.JFieldVar |
generateField(com.sun.codemodel.JType type)
Generates the field declaration.
|
com.sun.codemodel.JType |
getFieldType()
Returns the type used to store the value of the field in memory.
|
protected java.lang.String |
getGetterMethod()
Gets the name of the getter method.
|
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 |
ref() |
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 SingleField(ClassOutlineImpl context, CPropertyInfo prop)
protected SingleField(ClassOutlineImpl context, CPropertyInfo prop, boolean forcePrimitiveAccess)
forcePrimitiveAccess
- forces the setter/getter to expose the primitive type.
it's a pointless customization, but it's nevertheless in the spec.public final com.sun.codemodel.JType getFieldType()
public FieldAccessor 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 final void createField()
protected java.lang.String getGetterMethod()
This encapsulation is necessary because sometimes we use
isXXXX
as the method name.
protected com.sun.codemodel.JFieldVar ref()
public final 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 com.sun.codemodel.JType getType(Aspect aspect)
CPropertyInfo
aspect
- protected final java.util.List<java.lang.Object> listPossibleTypes(CPropertyInfo prop)