Class SingleField

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])
  • Field Details

    • 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 Details

    • 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 Details

    • 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 new FieldAccessor 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 enclosing ClassOutline.
      Specified by:
      parent in interface FieldOutline
    • getPropertyInfo

      public final CPropertyInfo getPropertyInfo()
      Description copied from interface: FieldOutline
      Gets the corresponding model object.
      Specified by:
      getPropertyInfo in interface FieldOutline
    • annotate

      protected void annotate(JAnnotatable field)
      Annotate the field according to the recipes given as CPropertyInfo.
    • getOptions

      protected final Options getOptions()
      Gets the Options in the current compilation context.
    • generateField

      protected final JFieldVar generateField(JType type)
      Generates the field declaration.
    • castToImplType

      protected final JExpression castToImplType(JExpression exp)
      Cast from exposedType to implType if necessary.
    • getType

      protected JType getType(Aspect aspect)
      Compute the type of a CPropertyInfo
    • listPossibleTypes

      protected final List<Object> listPossibleTypes(CPropertyInfo prop)
      Returns contents to be added to javadoc.