Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## 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(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

    public 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 null
    `IllegalStateException` - if this DynaClass is currently restricted, so no new properties can be added

### add

    public 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 property
    `type` - Data type of the new dynamic property (null for no restrictions)
  Throws:
    `java.lang.IllegalArgumentException` - if name is null
    `IllegalStateException` - if this DynaClass is currently restricted, so no new properties can be added

### add

    public 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 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:
    `java.lang.IllegalArgumentException` - if name is null
    `IllegalStateException` - if this DynaClass is currently restricted, so no new properties can be added

### isRestricted

    public 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

    public 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 null
    `IllegalStateException` - if this DynaClass is currently restricted, so no properties can be removed

### setRestricted

    public void setRestricted(boolean restricted)

  Set the restricted state of this DynaClass to the specified value.
  Parameters:
    `restricted` - The new restricted state

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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