# Interface BeanContextChild

All Known Subinterfaces:
  `BeanContext`, `BeanContextServices`

All Known Implementing Classes:
  `BeanContextChildSupport`, `BeanContextServicesSupport`, `BeanContextSupport`

@Deprecated(since="23", forRemoval=true) public interface BeanContextChild
Deprecated, for removal: This API element is subject to removal in a future version.

JavaBeans wishing to be nested within, and obtain a reference to their execution environment, or context, as defined by the BeanContext sub-interface shall implement this interface.

Conformant BeanContexts shall as a side effect of adding a BeanContextChild object shall pass a reference to itself via the setBeanContext() method of this interface.

Note that a BeanContextChild may refuse a change in state by throwing PropertyVetoedException in response.

In order for persistence mechanisms to function properly on BeanContextChild instances across a broad variety of scenarios, implementing classes of this interface are required to define as transient, any or all fields, or instance variables, that may contain, or represent, references to the nesting BeanContext instance or other resources obtained from the BeanContext via any unspecified mechanisms.

Since:
  1.2
See Also:
  - `BeanContext`
  - `PropertyChangeEvent`
  - `PropertyChangeListener`
  - `PropertyVetoException`
  - `VetoableChangeListener`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `addPropertyChangeListener(String name, PropertyChangeListener pcl)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Adds a `PropertyChangeListener` to this `BeanContextChild` in order to receive a `PropertyChangeEvent` whenever the specified property has changed.
  `void`
  `addVetoableChangeListener(String name, VetoableChangeListener vcl)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Adds a `VetoableChangeListener` to this `BeanContextChild` to receive events whenever the specified property changes.
  `BeanContext`
  `getBeanContext()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Gets the `BeanContext` associated with this `BeanContextChild`.
  `void`
  `removePropertyChangeListener(String name, PropertyChangeListener pcl)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Removes a `PropertyChangeListener` from this `BeanContextChild` so that it no longer receives `PropertyChangeEvents` when the specified property is changed.
  `void`
  `removeVetoableChangeListener(String name, VetoableChangeListener vcl)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Removes a `VetoableChangeListener` from this `BeanContextChild` so that it no longer receives events when the specified property changes.
  `void`
  `setBeanContext(BeanContext bc)`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Objects that implement this interface, shall fire a java.beans.PropertyChangeEvent, with parameters: propertyName "beanContext", oldValue (the previous nesting `BeanContext` instance, or `null`), newValue (the current nesting `BeanContext` instance, or `null`).

- ## Method Details

  - ### setBeanContext

    void setBeanContext(BeanContext bc) throws PropertyVetoException
    Deprecated, for removal: This API element is subject to removal in a future version.

    Objects that implement this interface, shall fire a java.beans.PropertyChangeEvent, with parameters: propertyName "beanContext", oldValue (the previous nesting `BeanContext` instance, or `null`), newValue (the current nesting `BeanContext` instance, or `null`).

    A change in the value of the nesting BeanContext property of this BeanContextChild may be vetoed by throwing the appropriate exception.

    Parameters:
      `bc` - The `BeanContext` with which to associate this `BeanContextChild`.
    Throws:
      `PropertyVetoException` - if the addition of the specified `BeanContext` is refused.

  - ### getBeanContext

    BeanContext getBeanContext()
    Deprecated, for removal: This API element is subject to removal in a future version.
    Gets the `BeanContext` associated with this `BeanContextChild`.
    Returns:
      the `BeanContext` associated with this `BeanContextChild`.

  - ### addPropertyChangeListener

    void addPropertyChangeListener(String name, PropertyChangeListener pcl)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds a `PropertyChangeListener` to this `BeanContextChild` in order to receive a `PropertyChangeEvent` whenever the specified property has changed.
    Parameters:
      `name` - the name of the property to listen on
      `pcl` - the `PropertyChangeListener` to add

  - ### removePropertyChangeListener

    void removePropertyChangeListener(String name, PropertyChangeListener pcl)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Removes a `PropertyChangeListener` from this `BeanContextChild` so that it no longer receives `PropertyChangeEvents` when the specified property is changed.
    Parameters:
      `name` - the name of the property that was listened on
      `pcl` - the `PropertyChangeListener` to remove

  - ### addVetoableChangeListener

    void addVetoableChangeListener(String name, VetoableChangeListener vcl)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Adds a `VetoableChangeListener` to this `BeanContextChild` to receive events whenever the specified property changes.
    Parameters:
      `name` - the name of the property to listen on
      `vcl` - the `VetoableChangeListener` to add

  - ### removeVetoableChangeListener

    void removeVetoableChangeListener(String name, VetoableChangeListener vcl)
    Deprecated, for removal: This API element is subject to removal in a future version.
    Removes a `VetoableChangeListener` from this `BeanContextChild` so that it no longer receives events when the specified property changes.
    Parameters:
      `name` - the name of the property that was listened on.
      `vcl` - the `VetoableChangeListener` to remove.