org.apache.commons.beanutils
Interface MutableDynaClass

All Superinterfaces:
DynaClass
All Known Implementing Classes:
LazyDynaClass, LazyDynaMap

public interface MutableDynaClass
extends DynaClass

A specialized extension to DynaClass that allows properties to be added or removed dynamically.

WARNING - No guarantees that this will be in the final APIs ... it's here primarily to preserve some concepts that were in the original proposal for further discussion.

Version:
$Revision: 555824 $ $Date: 2007-07-13 01:27:15 +0100 (Fri, 13 Jul 2007) $
Author:
Craig McClanahan, Michael Smith, Paulo Gaspar

Method Summary
 void add(String name)
          Add a new dynamic property with no restrictions on data type, readability, or writeability.
 void add(String name, Class type)
          Add a new dynamic property with the specified data type, but with no restrictions on readability or writeability.
 void add(String name, Class type, boolean readable, boolean writeable)
          Add a new dynamic property with the specified data type, readability, and writeability.
 boolean isRestricted()
          Is this DynaClass currently restricted, if so, no changes to the existing registration of property names, data types, readability, or writeability are allowed.
 void remove(String name)
          Remove the specified dynamic property, and any associated data type, readability, and writeability, from this dynamic class.
 void setRestricted(boolean restricted)
          Set the restricted state of this DynaClass to the specified value.
 
Methods inherited from interface org.apache.commons.beanutils.DynaClass
getDynaProperties, getDynaProperty, getName, newInstance
 

Method Detail

add

void add(String name)
Add a new dynamic property with no restrictions on data type, readability, or writeability.

Parameters:
name - Name of the new dynamic property
Throws:
IllegalArgumentException - if name is null
IllegalStateException - if this DynaClass is currently restricted, so no new properties can be added

add

void add(String name,
         Class type)
Add a new dynamic property with the specified data type, but with no restrictions on readability or writeability.

Parameters:
name - Name of the new dynamic property
type - Data type of the new dynamic property (null for no restrictions)
Throws:
IllegalArgumentException - if name is null
IllegalStateException - if this DynaClass is currently restricted, so no new properties can be added

add

void add(String name,
         Class type,
         boolean readable,
         boolean writeable)
Add a new dynamic property with the specified data type, readability, and writeability.

Parameters:
name - Name of the new dynamic property
type - Data type of the new dynamic property (null for no restrictions)
readable - Set to true if this property value should be readable
writeable - Set to true if this property value should be writeable
Throws:
IllegalArgumentException - if name is null
IllegalStateException - if this DynaClass is currently restricted, so no new properties can be added

isRestricted

boolean isRestricted()
Is this DynaClass currently restricted, if so, no changes to the existing registration of property names, data types, readability, or writeability are allowed.

Returns:
true if this Mutable DynaClass is restricted, otherwise false

remove

void remove(String name)
Remove the specified dynamic property, and any associated data type, readability, and writeability, from this dynamic class. NOTE - This does NOT cause any corresponding property values to be removed from DynaBean instances associated with this DynaClass.

Parameters:
name - Name of the dynamic property to remove
Throws:
IllegalArgumentException - if name is null
IllegalStateException - if this DynaClass is currently restricted, so no properties can be removed

setRestricted

void setRestricted(boolean restricted)
Set the restricted state of this DynaClass to the specified value.

Parameters:
restricted - The new restricted state


Copyright © 2000-2009 The Apache Software Foundation. All Rights Reserved.