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.
Modifier and Type | Field and Description |
---|---|
private static int |
BOOLEAN_TYPE |
private static int |
BYTE_TYPE |
private static int |
CHAR_TYPE |
protected java.lang.Class<?> |
contentType
The (optional) type of content elements for indexed
DynaProperty |
private static int |
DOUBLE_TYPE |
private static int |
FLOAT_TYPE |
private static int |
INT_TYPE |
private static int |
LONG_TYPE |
protected java.lang.String |
name
Property name
|
private static int |
SHORT_TYPE |
protected java.lang.Class<?> |
type
Property type
|
Constructor and 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. |
Modifier and Type | Method and 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)?
|
private java.lang.Class<?> |
readAnyClass(java.io.ObjectInputStream in)
Reads a class using safe encoding to workaround java 1.3 serialization bug.
|
private void |
readObject(java.io.ObjectInputStream in)
Reads field values for this object safely.
|
java.lang.String |
toString()
Return a String representation of this Object.
|
private void |
writeAnyClass(java.lang.Class<?> clazz,
java.io.ObjectOutputStream out)
Write a class using safe encoding to workaround java 1.3 serialization bug.
|
private void |
writeObject(java.io.ObjectOutputStream out)
Writes this object safely.
|
private static final int BOOLEAN_TYPE
private static final int BYTE_TYPE
private static final int CHAR_TYPE
private static final int DOUBLE_TYPE
private static final int FLOAT_TYPE
private static final int INT_TYPE
private static final int LONG_TYPE
private static final int SHORT_TYPE
protected java.lang.String name
protected transient java.lang.Class<?> type
protected transient java.lang.Class<?> contentType
DynaProperty
public DynaProperty(java.lang.String name)
name
- Name of the property being describedpublic DynaProperty(java.lang.String name, java.lang.Class<?> type)
name
- Name of the property being describedtype
- Java class representing the property data typepublic DynaProperty(java.lang.String name, java.lang.Class<?> type, java.lang.Class<?> contentType)
DynaProperty
that supports (pseudo)-introspection
of the content type.name
- Name of the property being describedtype
- Java class representing the property data typecontentType
- Class that all indexed or mapped elements are instances ofpublic java.lang.String getName()
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
public java.lang.Class<?> getContentType()
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.
DynaProperty
and this feature is supported. Otherwise null.public boolean isIndexed()
true
if the property is indexed (i.e. is a List or
array), otherwise false
public boolean isMapped()
true
if the property is a Map
otherwise false
public boolean equals(java.lang.Object obj)
Object.equals(Object)
equals
in class java.lang.Object
obj
- The object to compare totrue
if object is a dyna property with the same name
type and content type, otherwise false
public int hashCode()
hashCode
in class java.lang.Object
Object.hashCode()
public java.lang.String toString()
toString
in class java.lang.Object
private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException
java.io.IOException
private void writeAnyClass(java.lang.Class<?> clazz, java.io.ObjectOutputStream out) throws java.io.IOException
java.io.IOException
private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.StreamCorruptedException
- when the stream data values are outside expected rangejava.io.IOException
java.lang.ClassNotFoundException
private java.lang.Class<?> readAnyClass(java.io.ObjectInputStream in) throws java.io.IOException, java.lang.ClassNotFoundException
java.io.IOException
java.lang.ClassNotFoundException
Copyright (c) 2000-2008 - Apache Software Foundation