Class DynaProperty

java.lang.Object
org.apache.commons.beanutils2.DynaProperty

public class DynaProperty extends Object

The metadata describing an individual property of a DynaBean.

The meta contains an optional content type property (getContentType()) for use by mapped and iterated properties. A mapped or iterated property may choose to indicate the type it expects. The DynaBean implementation may choose to enforce this type on its entries. Alternatively, an implementation may choose to ignore this property. All keys for maps must be of type String so no meta data is needed for map keys.

  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected Class<?>
    The (optional) type of content elements for indexed DynaProperty
    static final DynaProperty[]
    Empty array.
    protected String
    Property name
    protected Class<?>
    Property type
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a property that accepts any data type.
    DynaProperty(String name, Class<?> type)
    Constructs a property of the specified data type.
    DynaProperty(String name, Class<?> type, Class<?> contentType)
    Constructs an indexed or mapped DynaProperty that supports (pseudo)-introspection of the content type.
  • Method Summary

    Modifier and Type
    Method
    Description
    boolean
    Checks this instance against the specified Object for equality.
    Gets the (optional) type of the indexed content for DynaProperty's that support this feature.
    Gets the name of this property.
    Gets the Java class representing the data type of the underlying property values.
    int
     
    boolean
    Does this property represent an indexed value (ie an array or List)?
    boolean
    Does this property represent a mapped value (ie a Map)?
    Gets a String representation of this Object.

    Methods inherited from class java.lang.Object

    clone, finalize, getClass, notify, notifyAll, wait, wait, wait
  • Field Details

    • EMPTY_ARRAY

      public static final DynaProperty[] EMPTY_ARRAY
      Empty array.
    • name

      protected String name
      Property name
    • type

      protected transient Class<?> type
      Property type
    • contentType

      protected transient Class<?> contentType
      The (optional) type of content elements for indexed DynaProperty
  • Constructor Details

    • DynaProperty

      public DynaProperty(String name)
      Constructs a property that accepts any data type.
      Parameters:
      name - Name of the property being described
    • DynaProperty

      public DynaProperty(String name, Class<?> type)
      Constructs a property of the specified data type.
      Parameters:
      name - Name of the property being described
      type - Java class representing the property data type
    • DynaProperty

      public DynaProperty(String name, Class<?> type, Class<?> contentType)
      Constructs an indexed or mapped DynaProperty that supports (pseudo)-introspection of the content type.
      Parameters:
      name - Name of the property being described
      type - Java class representing the property data type
      contentType - Class that all indexed or mapped elements are instances of
  • Method Details

    • equals

      public boolean equals(Object obj)
      Checks this instance against the specified Object for equality. Overrides the default reference test for equality provided by Object.equals(Object)
      Overrides:
      equals in class Object
      Parameters:
      obj - The object to compare to
      Returns:
      true if object is a dyna property with the same name type and content type, otherwise false
      Since:
      1.8.0
    • getContentType

      public Class<?> getContentType()
      Gets the (optional) type of the indexed content for DynaProperty's that support this feature.

      There are issues with serializing primitive class types on certain JVM versions (including Java 1.3). Therefore, this field must not be serialized using the standard methods.

      Returns:
      the Class for the content type if this is an indexed DynaProperty and this feature is supported. Otherwise null.
    • getName

      public String getName()
      Gets the name of this property.
      Returns:
      the name of the property
    • getType

      public Class<?> getType()

      Gets the Java class representing the data type of the underlying property values.

      There are issues with serializing primitive class types on certain JVM versions (including Java 1.3). Therefore, this field must not be serialized using the standard methods.

      Please leave this field as transient

      Returns:
      the property type
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
      Returns:
      the hash code for this dyna property
      Since:
      1.8.0
      See Also:
    • isIndexed

      public boolean isIndexed()
      Does this property represent an indexed value (ie an array or List)?
      Returns:
      true if the property is indexed (i.e. is a List or array), otherwise false
    • isMapped

      public boolean isMapped()
      Does this property represent a mapped value (ie a Map)?
      Returns:
      true if the property is a Map otherwise false
    • toString

      public String toString()
      Gets a String representation of this Object.
      Overrides:
      toString in class Object
      Returns:
      a String representation of the dyna property