org.apache.commons.beanutils

Class DynaProperty

Implemented Interfaces:
Serializable

public class DynaProperty
extends java.lang.Object
implements 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:
$Revision: 1.13 $ $Date: 2004/02/28 13:18:33 $
Author:
Craig R. McClanahan

Field Summary

private static int
BOOLEAN_TYPE
private static int
BYTE_TYPE
private static int
CHAR_TYPE
private static int
DOUBLE_TYPE
private static int
FLOAT_TYPE
private static int
INT_TYPE
private static int
LONG_TYPE
private static int
SHORT_TYPE
protected Class
contentType
The (optional) type of content elements for indexed DynaProperty
protected String
name
Property name
protected Class
type
Property type

Constructor Summary

DynaProperty(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 mapped DynaProperty that supports (pseudo)-introspection of the content type.

Method Summary

Class
getContentType()
Gets the (optional) type of the indexed content for DynaProperty's that support this feature.
String
getName()
Get the name of this property.
Class
getType()
Gets the Java class representing the data type of the underlying property values.
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 Class
readAnyClass(ObjectInputStream in)
Reads a class using safe encoding to workaround java 1.3 serialization bug.
private void
readObject(ObjectInputStream in)
Reads field values for this object safely.
String
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
writeObject(ObjectOutputStream out)
Writes this object safely.

Field Details

BOOLEAN_TYPE

private static final int BOOLEAN_TYPE
Field Value:
1

BYTE_TYPE

private static final int BYTE_TYPE
Field Value:
2

CHAR_TYPE

private static final int CHAR_TYPE
Field Value:
3

DOUBLE_TYPE

private static final int DOUBLE_TYPE
Field Value:
4

FLOAT_TYPE

private static final int FLOAT_TYPE
Field Value:
5

INT_TYPE

private static final int INT_TYPE
Field Value:
6

LONG_TYPE

private static final int LONG_TYPE
Field Value:
7

SHORT_TYPE

private static final int SHORT_TYPE
Field Value:
8

contentType

protected Class contentType
The (optional) type of content elements for indexed DynaProperty

name

protected String name
Property name

type

protected Class type
Property type

Constructor Details

DynaProperty

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

DynaProperty

public DynaProperty(String name,
                    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(String name,
                    Class type,
                    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 Details

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()
Get the name of this 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


isIndexed

public boolean isIndexed()
Does this property represent an indexed value (ie an array or List)?

isMapped

public boolean isMapped()
Does this property represent a mapped value (ie a Map)?

readAnyClass

private Class readAnyClass(ObjectInputStream in)
            throws IOException,
                   ClassNotFoundException
Reads a class using safe encoding to workaround java 1.3 serialization bug.

readObject

private void readObject(ObjectInputStream in)
            throws IOException,
                   ClassNotFoundException
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.

toString

public String toString()
Return a String representation of this Object.

writeAnyClass

private void writeAnyClass(Class clazz,
                           ObjectOutputStream out)
            throws IOException
Write a class using safe encoding to workaround java 1.3 serialization bug.

writeObject

private void writeObject(ObjectOutputStream out)
            throws IOException
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.

Copyright (c) 2001-2004 - Apache Software Foundation