org.jboss.kernel.plugins.dependency
Class AbstractKernelController

java.lang.Object
  extended by org.jboss.util.JBossObject
      extended by org.jboss.dependency.plugins.AbstractController
          extended by org.jboss.dependency.plugins.ScopedController
              extended by org.jboss.kernel.plugins.dependency.AbstractKernelController
All Implemented Interfaces:
Cloneable, Iterable<ControllerState>, AbstractControllerMBean, Controller, ControllerStateModel, GraphController, KernelController, KernelEventEmitter, KernelObject, KernelRegistryPlugin, org.jboss.util.JBossInterface
Direct Known Subclasses:
ScopedKernelController

public class AbstractKernelController
extends ScopedController
implements KernelController, KernelRegistryPlugin

Abstract Kernel controller.

Version:
$Revision: 83467 $
Author:
Adrian Brock, Ales Justin

Field Summary
protected  Map<Class<?>,org.jboss.kernel.plugins.dependency.AbstractKernelController.ClassContext> contextsByClass
          The contexts by class Map>
protected  AbstractEventEmitter emitterDelegate
          The emitter delegate
protected  Kernel kernel
          The kernel
protected  Map<Object,List<KernelControllerContext>> suppliers
          The supplies
 
Fields inherited from class org.jboss.util.JBossObject
hashCode, log, toString
 
Constructor Summary
AbstractKernelController()
          Create an abstract kernel controller
 
Method Summary
 void addInstantiatedContext(KernelControllerContext context)
          Add instantiated context into contextsByClass map look at all target's superclasses and interfaces
 void addSupplies(KernelControllerContext context)
          Add supplies
protected  Map<ControllerState,ControllerContextAction> createAliasActions()
          Create alias controller context actions.
protected  AbstractEventEmitter createEventEmitter()
          Create event emitter.
 void fireKernelEvent(KernelEvent event)
          Fire an event
 ControllerContext getContext(Object name, ControllerState state)
          Get a context
 KernelControllerContext getContextByClass(Class<?> clazz)
          If zero or multiple instances match class clazz a warning is issued, but no throwable is thrown
protected  Set<KernelControllerContext> getContexts(Class<?> clazz)
          Get contexts by class.
 Set<KernelControllerContext> getContexts(Class<?> clazz, ControllerState state)
          Get all contexts of a type which are at least in state.
 KernelRegistryEntry getEntry(Object name)
          Get a registration
 Set<KernelControllerContext> getInstantiatedContexts(Class<?> clazz)
          Get all instantiated contexts of a type
 Kernel getKernel()
          Get the kernel
 KernelControllerContext install(BeanMetaData metaData)
          Install a context
 KernelControllerContext install(BeanMetaData metaData, Object target)
          Install a context
protected  List<KernelControllerContext> matchSupplies(Matcher matcher)
          Try matching supplies.
protected  void prepareToTraverse(KernelControllerContext context, boolean addition)
           
 void registerListener(KernelEventListener listener, KernelEventFilter filter, Object handback)
          Register a listener
 void removeInstantiatedContext(KernelControllerContext context)
          Remove instantiated context from contextsByClass map look at all target's superclasses and interfaces
 void removeSupplies(KernelControllerContext context)
          Remove supplies
 void setKernel(Kernel kernel)
          Set the kernel.
protected  void traverseBean(KernelControllerContext context, Class<?> clazz, boolean addition, boolean trace)
          Traverse over target and map it to all its superclasses and interfaces - using recursion.
 void unregisterListener(KernelEventListener listener, KernelEventFilter filter, Object handback)
          Unregister a listener
 
Methods inherited from class org.jboss.dependency.plugins.ScopedController
addControllerContext, getContextLocally, getExecutionEnvironment, getScopeKey, isScoped, preAliasInstall, removeControllerContext, setScopeKey, setUnderlyingController, toString
 
Methods inherited from class org.jboss.dependency.plugins.AbstractController
addAlias, addCallback, addController, addState, advance, change, change, checkShutdown, enableOnDemand, enableOnDemand, getAllContexts, getCallbacks, getClassesImplemented, getContext, getContexts, getContextsByState, getControllers, getDependencyCallbacks, getExecutor, getId, getInstalledContext, getNextState, getNotInstalled, getParentController, getPreviousState, getRegisteredControllerContext, getState, getStateIndex, getStateIndex, getStates, handleInstallLifecycleCallbacks, handleLifecycleCallbacks, handleUninstallLifecycleCallbacks, incrementState, install, install, install, isActive, isAfterState, isBeforeState, isCollectStats, isShutdown, iterator, listIteraror, listStateTimes, lockRead, lockWrite, registerControllerContext, registerControllerContext, removeAlias, removeCallback, removeController, resolveCallbacks, resolveCallbacks, resolveContexts, resolveContexts, resolveContexts, setCollectStats, setExecutor, setParentController, shutdown, traverseClass, uninstall, uninstall, uninstall, uninstallContext, uninstallContext, unlockRead, unlockWrite, unregisterControllerContext, unregisterControllerContext
 
Methods inherited from class org.jboss.util.JBossObject
cacheGetHashCode, cacheToString, clone, equals, flushJBossObjectCache, getClassShortName, getHashCode, hashCode, list, notEqual, toShortString, toShortString, toString, toStringImplementation
 
Methods inherited from class java.lang.Object
equals, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.jboss.dependency.spi.Controller
addAlias, addState, change, enableOnDemand, getContextsByState, getInstalledContext, getNotInstalled, getStates, install, isShutdown, removeAlias, shutdown, uninstall
 
Methods inherited from interface org.jboss.util.JBossInterface
clone, toShortString, toShortString
 

Field Detail

kernel

protected Kernel kernel
The kernel


emitterDelegate

protected AbstractEventEmitter emitterDelegate
The emitter delegate


suppliers

protected Map<Object,List<KernelControllerContext>> suppliers
The supplies


contextsByClass

protected Map<Class<?>,org.jboss.kernel.plugins.dependency.AbstractKernelController.ClassContext> contextsByClass
The contexts by class Map>

Constructor Detail

AbstractKernelController

public AbstractKernelController()
                         throws Exception
Create an abstract kernel controller

Throws:
Exception - for any error
Method Detail

createAliasActions

protected Map<ControllerState,ControllerContextAction> createAliasActions()
Description copied from class: AbstractController
Create alias controller context actions.

Overrides:
createAliasActions in class AbstractController
Returns:
the alias controller context actions

createEventEmitter

protected AbstractEventEmitter createEventEmitter()
Create event emitter.

Returns:
new abstract event emitter instance

install

public KernelControllerContext install(BeanMetaData metaData)
                                throws Throwable
Description copied from interface: KernelController
Install a context

Specified by:
install in interface KernelController
Parameters:
metaData - the metaData
Returns:
the context
Throws:
Throwable - for any error

install

public KernelControllerContext install(BeanMetaData metaData,
                                       Object target)
                                throws Throwable
Description copied from interface: KernelController
Install a context

Specified by:
install in interface KernelController
Parameters:
metaData - the metaData
target - the target object
Returns:
the context
Throws:
Throwable - for any error

getEntry

public KernelRegistryEntry getEntry(Object name)
Description copied from interface: KernelRegistryPlugin
Get a registration

Specified by:
getEntry in interface KernelRegistryPlugin
Parameters:
name - the name of the object
Returns:
the registration

matchSupplies

protected List<KernelControllerContext> matchSupplies(Matcher matcher)
Try matching supplies.

Parameters:
matcher - the matcher
Returns:
list of context's who have a matching supply

getContext

public ControllerContext getContext(Object name,
                                    ControllerState state)
Description copied from interface: Controller
Get a context

Specified by:
getContext in interface Controller
Overrides:
getContext in class AbstractController
Parameters:
name - the name of the component
state - the state (pass null for any state)
Returns:
the context

addSupplies

public void addSupplies(KernelControllerContext context)
Description copied from interface: KernelController
Add supplies

Specified by:
addSupplies in interface KernelController
Parameters:
context - the context

removeSupplies

public void removeSupplies(KernelControllerContext context)
Description copied from interface: KernelController
Remove supplies

Specified by:
removeSupplies in interface KernelController
Parameters:
context - the context

getKernel

public Kernel getKernel()
Description copied from interface: KernelObject
Get the kernel

Specified by:
getKernel in interface KernelObject
Returns:
the kernel

setKernel

public void setKernel(Kernel kernel)
               throws Throwable
Description copied from interface: KernelObject
Set the kernel.

Specified by:
setKernel in interface KernelObject
Parameters:
kernel - the kernel
Throws:
Throwable - for any error
SecurityException - if the you don't have KernelPermission('configure')

fireKernelEvent

public void fireKernelEvent(KernelEvent event)
Description copied from interface: KernelEventEmitter
Fire an event

Specified by:
fireKernelEvent in interface KernelEventEmitter
Parameters:
event - the event

registerListener

public void registerListener(KernelEventListener listener,
                             KernelEventFilter filter,
                             Object handback)
                      throws Throwable
Description copied from interface: KernelEventEmitter
Register a listener

Specified by:
registerListener in interface KernelEventEmitter
Parameters:
listener - the listener
filter - the filter
handback - the handback object
Throws:
Throwable - for any error

unregisterListener

public void unregisterListener(KernelEventListener listener,
                               KernelEventFilter filter,
                               Object handback)
                        throws Throwable
Description copied from interface: KernelEventEmitter
Unregister a listener

Specified by:
unregisterListener in interface KernelEventEmitter
Parameters:
listener - the listener
filter - the filter
handback - the handback object
Throws:
Throwable - for any error

getContexts

protected Set<KernelControllerContext> getContexts(Class<?> clazz)
Get contexts by class. This method should be taken with read lock.

Parameters:
clazz - the class type
Returns:
contexts by class

getInstantiatedContexts

public Set<KernelControllerContext> getInstantiatedContexts(Class<?> clazz)
Description copied from interface: KernelController
Get all instantiated contexts of a type

Specified by:
getInstantiatedContexts in interface KernelController
Parameters:
clazz - the type
Returns:
all instantiated contexts whose target is instance of this class clazz param

getContexts

public Set<KernelControllerContext> getContexts(Class<?> clazz,
                                                ControllerState state)
Description copied from interface: KernelController
Get all contexts of a type which are at least in state.

Specified by:
getContexts in interface KernelController
Parameters:
clazz - the type
state - the required state
Returns:
the contexts

addInstantiatedContext

public void addInstantiatedContext(KernelControllerContext context)
Description copied from interface: KernelController
Add instantiated context into contextsByClass map look at all target's superclasses and interfaces

Specified by:
addInstantiatedContext in interface KernelController
Parameters:
context - the context

removeInstantiatedContext

public void removeInstantiatedContext(KernelControllerContext context)
Description copied from interface: KernelController
Remove instantiated context from contextsByClass map look at all target's superclasses and interfaces

Specified by:
removeInstantiatedContext in interface KernelController
Parameters:
context - the context

prepareToTraverse

protected void prepareToTraverse(KernelControllerContext context,
                                 boolean addition)

traverseBean

protected void traverseBean(KernelControllerContext context,
                            Class<?> clazz,
                            boolean addition,
                            boolean trace)
Traverse over target and map it to all its superclasses and interfaces - using recursion.

Parameters:
context - context whose target is instance of clazz
clazz - current class to map context to
addition - whether this is an addition
trace - whether trace is enabled

getContextByClass

public KernelControllerContext getContextByClass(Class<?> clazz)
If zero or multiple instances match class clazz a warning is issued, but no throwable is thrown

Specified by:
getContextByClass in interface KernelController
Parameters:
clazz - the type
Returns:
context whose target is instance of this class clazz param or null if zero or multiple such instances


Copyright © 2010 JBoss, a division of Red Hat, Inc.. All Rights Reserved.