org.apache.felix.ipojo.composite.instance

## Class InstanceHandler

- java.lang.Object
- - org.apache.felix.ipojo.Handler
  - - org.apache.felix.ipojo.composite.CompositeHandler
    - - org.apache.felix.ipojo.composite.instance.InstanceHandler

All Implemented Interfaces:
  InstanceStateListener

    public class InstanceHandler
    extends CompositeHandler
    implements InstanceStateListener

Composite Instance Handler. This handler allows creating an instance inside a composite. This instance is determine by its type and a configuration.

Author:
  Felix Project Team

### Field Summary

### Fields inherited from class org.apache.felix.ipojo.composite.CompositeHandler

`HANDLER_TYPE`

### Fields inherited from class org.apache.felix.ipojo.Handler

`HANDLER_LEVEL_PROPERTY, HANDLER_NAME_PROPERTY, HANDLER_NAMESPACE_PROPERTY, HANDLER_TYPE_PROPERTY, m_instance, m_isValid`

### Constructor Summary

Constructors
Constructor and Description
`InstanceHandler()`

### Method Summary

All Methods Static Methods Instance Methods Concrete Methods
`void` `bindFactory(Factory factory)` A new valid factory appears.
`void` `configure(org.apache.felix.ipojo.metadata.Element metadata, java.util.Dictionary configuration)` Configure method.
`HandlerDescription` `getDescription()` Return the handler description, i.e.
`java.lang.Object` `getObjectFromInstance(java.lang.String type)` Method returning an instance object of the given component type.
`java.util.List` `getUsedType()` Get the list of used component type.
`static java.util.Properties` `parseInstance(org.apache.felix.ipojo.metadata.Element instance)` Parse an Element to get a dictionary.
`static void` `parseProperty(org.apache.felix.ipojo.metadata.Element prop, java.util.Dictionary dict)` Parse a property.
`void` `reconfigure(java.util.Dictionary configuration)` The composite is reconfigured, we check if we have a property to change.
`void` `start()` Start method.
`void` `stateChanged(ComponentInstance instance, int newState)` Instance state listener.
`void` `stop()` Stop all created instances.
`void` `unbindFactory(Factory factory)` An existing factory disappears or becomes invalid.

### Methods inherited from class org.apache.felix.ipojo.composite.CompositeHandler

`attach, getCompositeManager, getHandler, getLogger, setFactory`

### Methods inherited from class org.apache.felix.ipojo.Handler

`debug, error, error, getHandlerManager, getValidity, info, initializeComponentFactory, isValid, setValidity, stateChanged, warn, warn`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### InstanceHandler

    public InstanceHandler()

### Method Detail

#### bindFactory

    public void bindFactory(Factory factory)

A new valid factory appears.

Parameters:
  `factory` - : factory.

#### unbindFactory

    public void unbindFactory(Factory factory)

An existing factory disappears or becomes invalid.

Parameters:
  `factory` - : factory

#### stop

    public void stop()

Stop all created instances.

Specified by:
  `stop` in class `Handler`

#### configure

    public void configure(org.apache.felix.ipojo.metadata.Element metadata,
                          java.util.Dictionary configuration)
                   throws ConfigurationException

Configure method.

Specified by:
  `configure` in class `Handler`
Parameters:
  `metadata` - : component type metadata.
  `configuration` - : instance configuration.
Throws:
  `ConfigurationException` - : occurs an instance cannot be parsed correctly.
See Also:
  `Handler.configure(org.apache.felix.ipojo.metadata.Element, java.util.Dictionary)`

#### parseInstance

    public static java.util.Properties parseInstance(org.apache.felix.ipojo.metadata.Element instance)
                                              throws ParseException

Parse an Element to get a dictionary.

Parameters:
  `instance` - : the Element describing an instance.
Returns:
  : the resulting dictionary
Throws:
  `ParseException` - : occurs when a configuration cannot be parse correctly.

#### parseProperty

    public static void parseProperty(org.apache.felix.ipojo.metadata.Element prop,
                                     java.util.Dictionary dict)
                              throws ParseException

Parse a property.

Parameters:
  `prop` - : the current element to parse
  `dict` - : the dictionary to populate
Throws:
  `ParseException` - : occurs if the property cannot be parsed correctly

#### start

    public void start()

Start method.

Specified by:
  `start` in class `Handler`
See Also:
  `Handler.start()`

#### stateChanged

    public void stateChanged(ComponentInstance instance,
                             int newState)

Instance state listener. This method listens when managed instance states change.

Specified by:
  `stateChanged` in interface `InstanceStateListener`
Parameters:
  `instance` - : instance
  `newState` - : the now state of the given instance
See Also:
  `InstanceStateListener.stateChanged(org.apache.felix.ipojo.ComponentInstance, int)`

#### getObjectFromInstance

    public java.lang.Object getObjectFromInstance(java.lang.String type)

Method returning an instance object of the given component type. This method must be called only on 'primitive' type.

Parameters:
  `type` - : type.
Returns:
  an instance object or null if not found.

#### getDescription

    public HandlerDescription getDescription()

Return the handler description, i.e. the state of created instances.

Overrides:
  `getDescription` in class `Handler`
Returns:
  the handler description.
See Also:
  `Handler.getDescription()`

#### getUsedType

    public java.util.List getUsedType()

Get the list of used component type.

Returns:
  the list containing the used component type

#### reconfigure

    public void reconfigure(java.util.Dictionary configuration)

The composite is reconfigured, we check if we have a property to change. We reconfigure all contained instances.

Overrides:
  `reconfigure` in class `Handler`
Parameters:
  `configuration` - the new instance configuration