org.apache.felix.ipojo.composite.instance
Class InstanceHandler

java.lang.Object
  extended by org.apache.felix.ipojo.Handler
      extended by org.apache.felix.ipojo.composite.CompositeHandler
          extended by org.apache.felix.ipojo.composite.instance.InstanceHandler
All Implemented Interfaces:
org.apache.felix.ipojo.InstanceStateListener

public class InstanceHandler
extends CompositeHandler
implements org.apache.felix.ipojo.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
InstanceHandler()
           
 
Method Summary
 void bindFactory(org.apache.felix.ipojo.Factory factory)
          A new valid factory appears.
 void configure(org.apache.felix.ipojo.metadata.Element metadata, java.util.Dictionary configuration)
          Configure method.
 org.apache.felix.ipojo.architecture.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.Dictionary 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 start()
          Start method.
 void stateChanged(org.apache.felix.ipojo.ComponentInstance instance, int newState)
          Instance state listener.
 void stop()
          Stop all created instances.
 void unbindFactory(org.apache.felix.ipojo.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
error, error, getHandlerManager, getValidity, info, initializeComponentFactory, isValid, reconfigure, 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(org.apache.felix.ipojo.Factory factory)
A new valid factory appears.

Parameters:
factory - : factory.

unbindFactory

public void unbindFactory(org.apache.felix.ipojo.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 org.apache.felix.ipojo.Handler

configure

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

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

parseInstance

public static java.util.Dictionary parseInstance(org.apache.felix.ipojo.metadata.Element instance)
                                          throws org.apache.felix.ipojo.parser.ParseException
Parse an Element to get a dictionary.

Parameters:
instance - : the Element describing an instance.
Returns:
: the resulting dictionary
Throws:
org.apache.felix.ipojo.parser.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 org.apache.felix.ipojo.parser.ParseException
Parse a property.

Parameters:
prop - : the current element to parse
dict - : the dictionary to populate
Throws:
org.apache.felix.ipojo.parser.ParseException - : occurs if the property cannot be parsed correctly

start

public void start()
Start method.

Specified by:
start in class org.apache.felix.ipojo.Handler
See Also:
org.apache.felix.ipojo.CompositeHandler#start()

stateChanged

public void stateChanged(org.apache.felix.ipojo.ComponentInstance instance,
                         int newState)
Instance state listener. This method listens when managed instance states change.

Specified by:
stateChanged in interface org.apache.felix.ipojo.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 org.apache.felix.ipojo.architecture.HandlerDescription getDescription()
Return the handler description, i.e. the state of created instances.

Overrides:
getDescription in class org.apache.felix.ipojo.Handler
Returns:
the handler description.
See Also:
org.apache.felix.ipojo.CompositeHandler#getDescription()

getUsedType

public java.util.List getUsedType()
Get the list of used component type.

Returns:
the list containing the used component type