Class FieldInfo

  • All Implemented Interfaces:
    NatureExtendable, PropertyHolder, XMLInfo
    Direct Known Subclasses:
    CollectionInfo, IdentityInfo

    public class FieldInfo
    extends java.lang.Object
    implements XMLInfo, PropertyHolder
    A class for representing field members of a class. FieldInfo objects hold all the information required about a member in order to be able to produce XML data binding (marshal/unmarshal) and validation code.
    Version:
    $Revision: 7996 $ $Date: 2006-04-25 15:08:23 -0600 (Tue, 25 Apr 2006) $
    Author:
    Keith Visco
    • Constructor Summary

      Constructors 
      Constructor Description
      FieldInfo​(XSType type, java.lang.String name, FieldMemberAndAccessorFactory memberAndAccessorFactory)
      Creates a new FieldInfo with the given XML Schema type and the given member name.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void addNature​(java.lang.String nature)
      Adds a specified nature.
      java.lang.String getComment()
      Returns the comment associated with this Member.
      ClassInfo getDeclaringClassInfo()
      Returns the ClassInfo to which this Member was declared, for inheritance reasons.
      java.lang.String getDefaultValue()
      Returns the default value for this FieldInfo.
      java.lang.String getDeleteMethodName()
      Returns the name of the delete method for this FieldInfo.
      FieldInfo getFieldInfoReference()
      Returns the reference to the FieldInfo instance within the same class.
      java.lang.String getFixedValue()
      Returns the fixed production for this FieldInfo, or null if no fixed value has been specified.
      java.lang.String getHasMethodName()
      Returns the name of the has method for this FieldInfo.
      java.lang.String getIsMethodName()
      Get the 'is' method for this FieldInfo.
      FieldMemberAndAccessorFactory getMemberAndAccessorFactory()
      Returns the FieldMemberAndAccessorFactory instance to use to create a JField out of this FieldInfo.
      int getMethods()
      Returns the methods flag that indicates which.
      java.lang.String getMethodSuffix()
      Returns the method suffix for creating method names.
      java.lang.String getName()
      Returns the name of this FieldInfo.
      java.lang.Object getProperty​(java.lang.String name)
      Get a property by its name.
      java.lang.String getReadMethodName()
      Returns the name of the read method for this FieldInfo.
      java.util.List<java.lang.String> getSubstitutionGroupMembers()
      Returns the possible substitution groups for this class.
      java.lang.String getValidator()
      Returns the fully qualified name of the Validator to use.
      java.lang.Object getVisibility()
      Returns this field's 'visibility'.
      java.lang.String getWriteMethodName()
      Returns the name of the write method for this FieldInfo.
      java.lang.String getXMLFieldHandler()
      Returns the fully qualified name of the XMLFieldHandler to use.
      boolean hasNature​(java.lang.String nature)
      Checks if a specified nature has been added.
      boolean isBound()
      Returns true if this FieldInfo represents a bound property.
      boolean isContainer()
      Returns true if this FieldInfo describes a container class.
      boolean isFinal()
      Indicates whether this field is final.
      boolean isNillable()
      Returns true if this field represents a nillable field.
      boolean isStatic()
      Indicates whether this field is static.
      boolean isTransient()
      Returns true if this FieldInfo is a transient member.
      boolean requiresHasAndDeleteMethods()
      Returns true if the "has" and "delete" methods are needed for the field associated with this FieldInfo.
      void setBound​(boolean bound)
      Sets whether or not this FieldInfo represents a bound property.
      void setComment​(java.lang.String comment)
      Sets the comment for this Member.
      void setContainer​(boolean isContainer)
      Sets whether or not this FieldInfo describes a container field.
      void setDeclaringClassInfo​(ClassInfo declaringClassInfo)
      Sets the ClassInfo of the class that declares this field.
      void setDefaultValue​(java.lang.String defaultValue)
      Sets the default value for this FieldInfo.
      void setFieldInfoReference​(FieldInfo fieldInfo)
      Sets the name of the field within the same class that is a reference to this field.
      void setFinal​(boolean isFinal)
      Sets the "final" status of this FieldInfo.
      void setFixedValue​(java.lang.String fixedValue)
      Sets the fixed value in which instances of this field type must lexically match.
      void setMethods​(int methods)
      Sets which methods to create: READ_METHOD, WRITE_METHOD, READ_WRITE_METHODS.
      void setNillable​(boolean nillable)
      Sets whether or not this field can be nillable.
      void setProperty​(java.lang.String name, java.lang.Object value)
      Set a property specified by the name to the passed value.
      void setStatic​(boolean isStatic)
      Sets the "static" status of this FieldInfo.
      void setSubstitutionGroupMembers​(java.util.List<java.lang.String> substitutionGroupMembers)
      Sets the possible substitution groups for this class.
      void setTransient​(boolean isTransient)
      Sets the transient status of this FieldInfo.
      void setValidator​(java.lang.String validator)
      Sets the name of the Validator to use.
      void setVisibility​(java.lang.String visibility)
      Sets the visibility of this FieldInfo.
      void setXMLFieldHandler​(java.lang.String handler)
      Sets the name of the XMLfieldHandler to use.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • READ_METHOD

        public static final int READ_METHOD
        The Read / Getter method flag.
        See Also:
        Constant Field Values
      • WRITE_METHOD

        public static final int WRITE_METHOD
        The Write / Setter method flag.
        See Also:
        Constant Field Values
      • READ_WRITE_METHODS

        public static final int READ_WRITE_METHODS
        The Read and Write methods flags.
        See Also:
        Constant Field Values
      • METHOD_PREFIX_ADD

        protected static final java.lang.String METHOD_PREFIX_ADD
        Method prefixes for "Add" methods.
        See Also:
        Constant Field Values
      • METHOD_PREFIX_DELETE

        protected static final java.lang.String METHOD_PREFIX_DELETE
        Method prefixes for "Delete" methods.
        See Also:
        Constant Field Values
      • METHOD_PREFIX_GET

        protected static final java.lang.String METHOD_PREFIX_GET
        Method prefixes for "Get" methods.
        See Also:
        Constant Field Values
      • METHOD_PREFIX_HAS

        protected static final java.lang.String METHOD_PREFIX_HAS
        Method prefixes for "Has" methods.
        See Also:
        Constant Field Values
      • METHOD_PREFIX_SET

        protected static final java.lang.String METHOD_PREFIX_SET
        Method prefixes for "Set" methods.
        See Also:
        Constant Field Values
      • METHOD_PREFIX_IS

        protected static final java.lang.String METHOD_PREFIX_IS
        Method prefixes for "Is" methods.
        See Also:
        Constant Field Values
    • Constructor Detail

      • FieldInfo

        public FieldInfo​(XSType type,
                         java.lang.String name,
                         FieldMemberAndAccessorFactory memberAndAccessorFactory)
        Creates a new FieldInfo with the given XML Schema type and the given member name. Adds the XMLInfoNature for legacy compliance.
        Parameters:
        type - the XML Schema type of this member
        name - the name of the member
        memberAndAccessorFactory - the FieldMemberAndAccessorFactory to be used
    • Method Detail

      • getMemberAndAccessorFactory

        public FieldMemberAndAccessorFactory getMemberAndAccessorFactory()
        Returns the FieldMemberAndAccessorFactory instance to use to create a JField out of this FieldInfo.
        Returns:
        the suitable FieldMemberAndAccessorFactory
      • getDefaultValue

        public final java.lang.String getDefaultValue()
        Returns the default value for this FieldInfo.
        Returns:
        the default value for this FieldInfo, or null if no default value was set;
      • getFixedValue

        public final java.lang.String getFixedValue()
        Returns the fixed production for this FieldInfo, or null if no fixed value has been specified.

        NOTE: Fixed values are NOT the same as default values

        Returns:
        the fixed value for this FieldInfo
      • getDeleteMethodName

        public final java.lang.String getDeleteMethodName()
        Returns the name of the delete method for this FieldInfo.
        Returns:
        the name of the delete method for this FieldInfo.
      • getHasMethodName

        public final java.lang.String getHasMethodName()
        Returns the name of the has method for this FieldInfo.
        Returns:
        the name of the has method for this FieldInfo.
      • getReadMethodName

        public final java.lang.String getReadMethodName()
        Returns the name of the read method for this FieldInfo.
        Returns:
        the name of the read method for this FieldInfo.
      • getValidator

        public final java.lang.String getValidator()
        Returns the fully qualified name of the Validator to use.
        Returns:
        the fully qualified name of the Validator to use.
      • getWriteMethodName

        public final java.lang.String getWriteMethodName()
        Returns the name of the write method for this FieldInfo.
        Returns:
        the name of the write method for this FieldInfo.
      • getIsMethodName

        public final java.lang.String getIsMethodName()
        Get the 'is' method for this FieldInfo.
        Returns:
        the name of the 'is' method for this FieldInfo
      • getXMLFieldHandler

        public final java.lang.String getXMLFieldHandler()
        Returns the fully qualified name of the XMLFieldHandler to use.
        Returns:
        the fully qualified name of the XMLFieldHandler to use.
      • getComment

        public final java.lang.String getComment()
        Returns the comment associated with this Member.
        Returns:
        the comment associated with this Member, or null. if one has not been set.
      • getMethods

        public final int getMethods()
        Returns the methods flag that indicates which. methods will be created.
        Returns:
        the methods flag
      • getName

        public final java.lang.String getName()
        Returns the name of this FieldInfo.
        Returns:
        the name of this FieldInfo.
      • isBound

        public final boolean isBound()
        Returns true if this FieldInfo represents a bound property.
        Returns:
        true if this FieldInfo represents a bound property.
      • isContainer

        public final boolean isContainer()
        Returns true if this FieldInfo describes a container class. A container class is a class which should not be marshalled as XML, but whose members should be.
        Returns:
        true if this ClassInfo describes a container class.
      • requiresHasAndDeleteMethods

        public final boolean requiresHasAndDeleteMethods()
        Returns true if the "has" and "delete" methods are needed for the field associated with this FieldInfo.
        Returns:
        true if the has and delete methods are needed.
      • isNillable

        public final boolean isNillable()
        Returns true if this field represents a nillable field. A nillable field is a field that can have null content (see XML Schema 1.0 definition of nillable).
        Returns:
        true if nillable, otherwise false.
        See Also:
        setNillable(boolean)
      • isTransient

        public final boolean isTransient()
        Returns true if this FieldInfo is a transient member. Transient members are members which should be ignored by the Marshalling framework.
        Returns:
        true if this FieldInfo is transient.
      • setComment

        public final void setComment​(java.lang.String comment)
        Sets the comment for this Member.
        Parameters:
        comment - the comment or description for this Member
      • getDeclaringClassInfo

        public final ClassInfo getDeclaringClassInfo()
        Returns the ClassInfo to which this Member was declared, for inheritance reasons.
        Returns:
        the ClassInfo to which this Member was declared.
      • setBound

        public final void setBound​(boolean bound)
        Sets whether or not this FieldInfo represents a bound property.
        Parameters:
        bound - the flag when true indicates that this FieldInfo represents a bound property.
      • setContainer

        public final void setContainer​(boolean isContainer)
        Sets whether or not this FieldInfo describes a container field. A container field is a field which should not be marshalled directly as XML, but whose members should be. By default this is false.
        Parameters:
        isContainer - the boolean value when true indicates this class should be a container class.
      • setDeclaringClassInfo

        public final void setDeclaringClassInfo​(ClassInfo declaringClassInfo)
        Sets the ClassInfo of the class that declares this field.
        Parameters:
        declaringClassInfo - The ClassInfo of the declaring class.
      • setDefaultValue

        public final void setDefaultValue​(java.lang.String defaultValue)
        Sets the default value for this FieldInfo.
        Parameters:
        defaultValue - the default value
      • setFinal

        public final void setFinal​(boolean isFinal)
        Sets the "final" status of this FieldInfo. Final members are also transient.
        Parameters:
        isFinal - the boolean indicating the final status, if true this FieldInfo will be treated as final.
      • setFixedValue

        public final void setFixedValue​(java.lang.String fixedValue)
        Sets the fixed value in which instances of this field type must lexically match. NOTE: This is not the same as default value!
        Parameters:
        fixedValue - the fixed production for this FieldInfo
      • setMethods

        public final void setMethods​(int methods)
        Sets which methods to create: READ_METHOD, WRITE_METHOD, READ_WRITE_METHODS.
        Parameters:
        methods - a flag describing which methods to create.
      • setNillable

        public final void setNillable​(boolean nillable)
        Sets whether or not this field can be nillable.
        Parameters:
        nillable - a boolean that when true means the field may be nil.
        See Also:
        isNillable()
      • setFieldInfoReference

        public final void setFieldInfoReference​(FieldInfo fieldInfo)
        Sets the name of the field within the same class that is a reference to this field.
        Parameters:
        fieldInfo - FieldInfo for the referencing field (within the same class).
      • setStatic

        public final void setStatic​(boolean isStatic)
        Sets the "static" status of this FieldInfo. Static members are also transient.
        Parameters:
        isStatic - the boolean indicating the static status, if true this FieldInfo will be treated as static
      • setTransient

        public final void setTransient​(boolean isTransient)
        Sets the transient status of this FieldInfo.
        Parameters:
        isTransient - the boolean indicating the transient status, if true this FieldInfo will be treated as transient
      • setValidator

        public final void setValidator​(java.lang.String validator)
        Sets the name of the Validator to use.
        Parameters:
        validator - the fully qualified name of the validator to use.
      • setXMLFieldHandler

        public final void setXMLFieldHandler​(java.lang.String handler)
        Sets the name of the XMLfieldHandler to use.
        Parameters:
        handler - the fully qualified name of the handler to use.
      • getMethodSuffix

        public java.lang.String getMethodSuffix()
        Returns the method suffix for creating method names.
        Returns:
        the method suffix used when creating method names.
      • setVisibility

        public final void setVisibility​(java.lang.String visibility)
        Sets the visibility of this FieldInfo.
        Parameters:
        visibility - the visibility of this FieldInfo.
      • setSubstitutionGroupMembers

        public void setSubstitutionGroupMembers​(java.util.List<java.lang.String> substitutionGroupMembers)
        Sets the possible substitution groups for this class.
        Parameters:
        substitutionGroupMembers - Possible substitution groups for this class.
      • getSubstitutionGroupMembers

        public java.util.List<java.lang.String> getSubstitutionGroupMembers()
        Returns the possible substitution groups for this class.
        Returns:
        the possible substitution groups for this class.
      • isStatic

        public boolean isStatic()
        Indicates whether this field is static.
        Returns:
        True if this field is static.
      • isFinal

        public boolean isFinal()
        Indicates whether this field is final.
        Returns:
        True if this field is final.
      • getVisibility

        public java.lang.Object getVisibility()
        Returns this field's 'visibility'.
        Returns:
        This field's visibility.
      • getFieldInfoReference

        public FieldInfo getFieldInfoReference()
        Returns the reference to the FieldInfo instance within the same class.
        Returns:
        the reference to the FieldInfo instance
      • getProperty

        public final java.lang.Object getProperty​(java.lang.String name)
        Description copied from interface: PropertyHolder
        Get a property by its name.
        Specified by:
        getProperty in interface PropertyHolder
        Parameters:
        name - of the property
        Returns:
        value of the property
      • setProperty

        public final void setProperty​(java.lang.String name,
                                      java.lang.Object value)
        Description copied from interface: PropertyHolder
        Set a property specified by the name to the passed value.
        Specified by:
        setProperty in interface PropertyHolder
        Parameters:
        name - of the property
        value - of the property
      • addNature

        public final void addNature​(java.lang.String nature)
        Description copied from interface: NatureExtendable
        Adds a specified nature.
        Specified by:
        addNature in interface NatureExtendable
        Parameters:
        nature - ID of the Nature
      • hasNature

        public final boolean hasNature​(java.lang.String nature)
        Description copied from interface: NatureExtendable
        Checks if a specified nature has been added.
        Specified by:
        hasNature in interface NatureExtendable
        Parameters:
        nature - ID of the Nature
        Returns:
        true if the Nature ID was added.