Class 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 Detail

      • 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,
                              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 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.

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

      • 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.
      • listPossibleTypes

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