Class DummyListField

java.lang.Object
com.sun.tools.xjc.generator.bean.field.DummyListField
All Implemented Interfaces:
FieldOutline

public class DummyListField extends Object
Realizes a property as an untyped 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 ([email protected])
  • Field Details

    • field

      protected JFieldVar field
      The field that stores the list.
    • primitiveType

      protected final JPrimitiveType primitiveType
      If this collection property is a collection of a primitive type, this variable refers to that primitive type. Otherwise null.
    • listT

      protected final JClass listT
    • 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

    • DummyListField

      protected DummyListField(ClassOutlineImpl context, CPropertyInfo prop, JClass coreList)
      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

    • annotate

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

      protected final JClass getCoreListType()
      Concrete class that implements the List interface. Used as the actual data storage.
    • generateAccessors

      public void generateAccessors()
      Generates accessor methods.
    • 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.
    • generate

      protected final void generate()
    • fixNullRef

      protected final void fixNullRef(JBlock block)
      Generates statement(s) so that the successive AbstractListField.Accessor.ref(boolean) with true will always return a non-null list. This is useful to avoid generating redundant internal getter.
    • getRawType

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

    • appendJavadoc

      protected void appendJavadoc(MethodWriter writer)
    • 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
    • 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.