Class DynaProperty

  • All Implemented Interfaces:
    java.io.Serializable

    public class DynaProperty
    extends java.lang.Object
    implements java.io.Serializable

    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 implementatin may choose to ignore this property. All keys for maps must be of type String so no meta data is needed for map keys.

    Version:
    $Id: DynaProperty.java 1632171 2014-10-15 20:15:17Z ggregory $
    See Also:
    Serialized Form
    • Field Summary

      Fields 
      Modifier and Type Field Description
      protected java.lang.Class<?> contentType
      The (optional) type of content elements for indexed DynaProperty
      protected java.lang.String name
      Property name
      protected java.lang.Class<?> type
      Property type
    • Constructor Summary

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

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      boolean equals​(java.lang.Object obj)
      Checks this instance against the specified Object for equality.
      java.lang.Class<?> getContentType()
      Gets the (optional) type of the indexed content for DynaProperty's that support this feature.
      java.lang.String getName()
      Get the name of this property.
      java.lang.Class<?> getType()
      Gets the Java class representing the data type of the underlying property values.
      int hashCode()  
      boolean isIndexed()
      Does this property represent an indexed value (ie an array or List)?
      boolean isMapped()
      Does this property represent a mapped value (ie a Map)?
      java.lang.String toString()
      Return a String representation of this Object.
      • Methods inherited from class java.lang.Object

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

      • name

        protected java.lang.String name
        Property name
      • type

        protected transient java.lang.Class<?> type
        Property type
      • contentType

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

      • DynaProperty

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

        public DynaProperty​(java.lang.String name,
                            java.lang.Class<?> type)
        Construct 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​(java.lang.String name,
                            java.lang.Class<?> type,
                            java.lang.Class<?> contentType)
        Construct 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 Detail

      • getName

        public java.lang.String getName()
        Get the name of this property.
        Returns:
        the name of the property
      • getType

        public java.lang.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
      • getContentType

        public java.lang.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.
      • 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
      • equals

        public boolean equals​(java.lang.Object obj)
        Checks this instance against the specified Object for equality. Overrides the default refererence test for equality provided by Object.equals(Object)
        Overrides:
        equals in class java.lang.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
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
        Returns:
        the hashcode for this dyna property
        Since:
        1.8.0
        See Also:
        Object.hashCode()
      • toString

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