Class DynaProperty
- All Implemented Interfaces:
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$
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final int
private static final int
private static final int
protected Class
<?> The (optional) type of content elements for indexedDynaProperty
private static final int
private static final int
private static final int
private static final int
protected String
Property nameprivate static final int
protected Class
<?> Property type -
Constructor Summary
ConstructorsConstructorDescriptionDynaProperty
(String name) Construct a property that accepts any data type.DynaProperty
(String name, Class<?> type) Construct a property of the specified data type.DynaProperty
(String name, Class<?> type, Class<?> contentType) Construct an indexed or mappedDynaProperty
that supports (pseudo)-introspection of the content type. -
Method Summary
Modifier and TypeMethodDescriptionboolean
Checks this instance against the specified Object for equality.Class
<?> Gets the (optional) type of the indexed content forDynaProperty
's that support this feature.getName()
Get the name of this property.Class
<?> getType()
Gets the Java class representing the data type of the underlying property values.int
hashCode()
boolean
Does this property represent an indexed value (ie an array or List)?boolean
isMapped()
Does this property represent a mapped value (ie a Map)?private Class
<?> Reads a class using safe encoding to workaround java 1.3 serialization bug.private void
Reads field values for this object safely.toString()
Return a String representation of this Object.private void
writeAnyClass
(Class<?> clazz, ObjectOutputStream out) Write a class using safe encoding to workaround java 1.3 serialization bug.private void
Writes this object safely.
-
Field Details
-
BOOLEAN_TYPE
private static final int BOOLEAN_TYPE- See Also:
-
BYTE_TYPE
private static final int BYTE_TYPE- See Also:
-
CHAR_TYPE
private static final int CHAR_TYPE- See Also:
-
DOUBLE_TYPE
private static final int DOUBLE_TYPE- See Also:
-
FLOAT_TYPE
private static final int FLOAT_TYPE- See Also:
-
INT_TYPE
private static final int INT_TYPE- See Also:
-
LONG_TYPE
private static final int LONG_TYPE- See Also:
-
SHORT_TYPE
private static final int SHORT_TYPE- See Also:
-
name
Property name -
type
Property type -
contentType
The (optional) type of content elements for indexedDynaProperty
-
-
Constructor Details
-
DynaProperty
Construct a property that accepts any data type.- Parameters:
name
- Name of the property being described
-
DynaProperty
Construct a property of the specified data type.- Parameters:
name
- Name of the property being describedtype
- Java class representing the property data type
-
DynaProperty
Construct an indexed or mappedDynaProperty
that supports (pseudo)-introspection of the content type.- Parameters:
name
- Name of the property being describedtype
- Java class representing the property data typecontentType
- Class that all indexed or mapped elements are instances of
-
-
Method Details
-
getName
Get the name of this property.- Returns:
- the name of the property
-
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
Gets the (optional) type of the indexed content forDynaProperty
'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), otherwisefalse
-
isMapped
public boolean isMapped()Does this property represent a mapped value (ie a Map)?- Returns:
true
if the property is a Map otherwisefalse
-
equals
Checks this instance against the specified Object for equality. Overrides the default refererence test for equality provided byObject.equals(Object)
-
hashCode
public int hashCode() -
toString
Return a String representation of this Object. -
writeObject
Writes this object safely. There are issues with serializing primitive class types on certain JVM versions (including java 1.3). This method provides a workaround.- Throws:
IOException
-
writeAnyClass
Write a class using safe encoding to workaround java 1.3 serialization bug.- Throws:
IOException
-
readObject
Reads field values for this object safely. There are issues with serializing primitive class types on certain JVM versions (including java 1.3). This method provides a workaround.- Throws:
StreamCorruptedException
- when the stream data values are outside expected rangeIOException
ClassNotFoundException
-
readAnyClass
Reads a class using safe encoding to workaround java 1.3 serialization bug.- Throws:
IOException
ClassNotFoundException
-