Package 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.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description void
add(java.lang.String name)
Add a new dynamic property with no restrictions on data type, readability, or writeability.void
add(java.lang.String name, java.lang.Class<?> type)
Add a new dynamic property with the specified data type, but with no restrictions on readability or writeability.void
add(java.lang.String name, java.lang.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(java.lang.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(java.lang.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:
java.lang.IllegalArgumentException
- if name is nulljava.lang.IllegalStateException
- if this DynaClass is currently restricted, so no new properties can be added
-
add
void add(java.lang.String name, java.lang.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 propertytype
- Data type of the new dynamic property (null for no restrictions)- Throws:
java.lang.IllegalArgumentException
- if name is nulljava.lang.IllegalStateException
- if this DynaClass is currently restricted, so no new properties can be added
-
add
void add(java.lang.String name, java.lang.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 propertytype
- Data type of the new dynamic property (null for no restrictions)readable
- Set totrue
if this property value should be readablewriteable
- Set totrue
if this property value should be writeable- Throws:
java.lang.IllegalArgumentException
- if name is nulljava.lang.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 MutableDynaClass
is restricted, otherwisefalse
-
remove
void remove(java.lang.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:
java.lang.IllegalArgumentException
- if name is nulljava.lang.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
-
-