Package org.exolab.castor.builder.info
Class FieldInfo
- java.lang.Object
-
- org.exolab.castor.builder.info.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
-
-
Field Summary
Fields Modifier and Type Field Description protected static java.lang.StringMETHOD_PREFIX_ADDMethod prefixes for "Add" methods.protected static java.lang.StringMETHOD_PREFIX_DELETEMethod prefixes for "Delete" methods.protected static java.lang.StringMETHOD_PREFIX_GETMethod prefixes for "Get" methods.protected static java.lang.StringMETHOD_PREFIX_HASMethod prefixes for "Has" methods.protected static java.lang.StringMETHOD_PREFIX_ISMethod prefixes for "Is" methods.protected static java.lang.StringMETHOD_PREFIX_SETMethod prefixes for "Set" methods.static intREAD_METHODThe Read / Getter method flag.static intREAD_WRITE_METHODSThe Read and Write methods flags.static intWRITE_METHODThe Write / Setter method flag.-
Fields inherited from interface org.exolab.castor.builder.info.XMLInfo
CHOICE_NODE_NAME_ERROR_INDICATION
-
-
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 voidaddNature(java.lang.String nature)Adds a specified nature.java.lang.StringgetComment()Returns the comment associated with this Member.ClassInfogetDeclaringClassInfo()Returns the ClassInfo to which this Member was declared, for inheritance reasons.java.lang.StringgetDefaultValue()Returns the default value for this FieldInfo.java.lang.StringgetDeleteMethodName()Returns the name of the delete method for this FieldInfo.FieldInfogetFieldInfoReference()Returns the reference to theFieldInfoinstance within the same class.java.lang.StringgetFixedValue()Returns the fixed production for this FieldInfo, or null if no fixed value has been specified.java.lang.StringgetHasMethodName()Returns the name of the has method for this FieldInfo.java.lang.StringgetIsMethodName()Get the 'is' method for this FieldInfo.FieldMemberAndAccessorFactorygetMemberAndAccessorFactory()Returns the FieldMemberAndAccessorFactory instance to use to create a JField out of this FieldInfo.intgetMethods()Returns the methods flag that indicates which.java.lang.StringgetMethodSuffix()Returns the method suffix for creating method names.java.lang.StringgetName()Returns the name of this FieldInfo.java.lang.ObjectgetProperty(java.lang.String name)Get a property by its name.java.lang.StringgetReadMethodName()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.StringgetValidator()Returns the fully qualified name of the Validator to use.java.lang.ObjectgetVisibility()Returns this field's 'visibility'.java.lang.StringgetWriteMethodName()Returns the name of the write method for this FieldInfo.java.lang.StringgetXMLFieldHandler()Returns the fully qualified name of the XMLFieldHandler to use.booleanhasNature(java.lang.String nature)Checks if a specified nature has been added.booleanisBound()Returns true if this FieldInfo represents a bound property.booleanisContainer()Returns true if this FieldInfo describes a container class.booleanisFinal()Indicates whether this field is final.booleanisNillable()Returns true if this field represents a nillable field.booleanisStatic()Indicates whether this field is static.booleanisTransient()Returns true if this FieldInfo is a transient member.booleanrequiresHasAndDeleteMethods()Returns true if the "has" and "delete" methods are needed for the field associated with this FieldInfo.voidsetBound(boolean bound)Sets whether or not this FieldInfo represents a bound property.voidsetComment(java.lang.String comment)Sets the comment for this Member.voidsetContainer(boolean isContainer)Sets whether or not this FieldInfo describes a container field.voidsetDeclaringClassInfo(ClassInfo declaringClassInfo)Sets theClassInfoof the class that declares this field.voidsetDefaultValue(java.lang.String defaultValue)Sets the default value for this FieldInfo.voidsetFieldInfoReference(FieldInfo fieldInfo)Sets the name of the field within the same class that is a reference to this field.voidsetFinal(boolean isFinal)Sets the "final" status of this FieldInfo.voidsetFixedValue(java.lang.String fixedValue)Sets the fixed value in which instances of this field type must lexically match.voidsetMethods(int methods)Sets which methods to create: READ_METHOD, WRITE_METHOD, READ_WRITE_METHODS.voidsetNillable(boolean nillable)Sets whether or not this field can be nillable.voidsetProperty(java.lang.String name, java.lang.Object value)Set a property specified by the name to the passed value.voidsetStatic(boolean isStatic)Sets the "static" status of this FieldInfo.voidsetSubstitutionGroupMembers(java.util.List<java.lang.String> substitutionGroupMembers)Sets the possible substitution groups for this class.voidsetTransient(boolean isTransient)Sets the transient status of this FieldInfo.voidsetValidator(java.lang.String validator)Sets the name of the Validator to use.voidsetVisibility(java.lang.String visibility)Sets the visibility of this FieldInfo.voidsetXMLFieldHandler(java.lang.String handler)Sets the name of the XMLfieldHandler to use.
-
-
-
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 theXMLInfoNaturefor legacy compliance.- Parameters:
type- the XML Schema type of this membername- the name of the membermemberAndAccessorFactory- 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 theClassInfoof the class that declares this field.- Parameters:
declaringClassInfo- TheClassInfoof 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-FieldInfofor 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 theFieldInfoinstance within the same class.- Returns:
- the reference to the
FieldInfoinstance
-
getProperty
public final java.lang.Object getProperty(java.lang.String name)
Description copied from interface:PropertyHolderGet a property by its name.- Specified by:
getPropertyin interfacePropertyHolder- 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:PropertyHolderSet a property specified by the name to the passed value.- Specified by:
setPropertyin interfacePropertyHolder- Parameters:
name- of the propertyvalue- of the property
-
addNature
public final void addNature(java.lang.String nature)
Description copied from interface:NatureExtendableAdds a specified nature.- Specified by:
addNaturein interfaceNatureExtendable- Parameters:
nature- ID of the Nature
-
hasNature
public final boolean hasNature(java.lang.String nature)
Description copied from interface:NatureExtendableChecks if a specified nature has been added.- Specified by:
hasNaturein interfaceNatureExtendable- Parameters:
nature- ID of the Nature- Returns:
- true if the Nature ID was added.
-
-