C# Class Castle.MicroKernel.Handlers.AbstractHandler

Inheritance: System.MarshalByRefObject, IHandler, IExposeDependencyInfo, IDisposable
Show file Open project: nats/castle-1.0.3-mono

Protected Properties

Property Type Description
lifestyleManager ILifestyleManager

Public Methods

Method Description
AbstractHandler ( ComponentModel model ) : System

Constructs and initializes the handler

AddCustomDependencyValue ( string key, object value ) : void

TODO: Pendent

CanResolve ( CreationContext context, ISubDependencyResolver parentResolver, ComponentModel model, DependencyModel dependency ) : bool
Dispose ( ) : void
HasCustomParameter ( string key ) : bool

TODO: Pendent

Init ( IKernel kernel ) : void

Saves the kernel instance, subscribes to IKernelEvents.AddedAsChildKernel event, creates the lifestyle manager instance and computes the handler state.

ObtainDependencyDetails ( IList dependenciesChecked ) : String

Returns human readable list of dependencies this handler is waiting for.

Release ( object instance ) : void

Should be implemented by derived classes: disposes the component instance (or recycle it)

RemoveCustomDependencyValue ( string key ) : void

TODO: Pendent

Resolve ( CreationContext context ) : object

Should be implemented by derived classes: returns an instance of the component this handler is responsible for

Resolve ( CreationContext context, ISubDependencyResolver parentResolver, ComponentModel model, DependencyModel dependency ) : object

Protected Methods

Method Description
AddDependency ( DependencyModel dependency ) : void

Invoked by EnsureDependenciesCanBeSatisfied in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state.

This method registers the dependencies within the correct collection or dictionary and changes the handler state to HandlerState.WaitingDependency

CreateLifestyleManager ( IComponentActivator activator ) : ILifestyleManager

Creates an implementation of ILifestyleManager based on LifestyleType and invokes ILifestyleManager.Init to initialize the newly created manager.

DependencySatisfied ( IHandler handler, bool &stateChanged ) : void

Invoked by the kernel when one of registered dependencies were satisfied by new components registered.

Handler for the event IKernelEvents.HandlerRegistered

EnsureDependenciesCanBeSatisfied ( ) : void

Checks if the handler is able to, at very least, satisfy the dependencies for the constructor with less parameters

For each non*optional dependency, the implementation will invoke AddDependency

OnAddedAsChildKernel ( object sender, EventArgs e ) : void

Invoked when the container receives a parent container reference.

This method implementation checks whether the parent container is able to supply the dependencies for this handler.

SetNewState ( HandlerState newState ) : void

Private Methods

Method Description
AddGraphDependency ( ComponentModel model ) : void
DisconnectEvents ( ) : void
HandlerStateChanged ( object source, EventArgs args ) : void

Handler for the event OnHandlerStateChanged

HasValidComponent ( String key ) : bool
HasValidComponent ( Type service ) : bool
IsValidHandlerState ( IHandler handler ) : bool
RaiseHandlerStateChanged ( ) : void
Union ( ICollection firstset, ICollection secondset ) : Castle.Core.DependencyModel[]

Method Details

AbstractHandler() public method

Constructs and initializes the handler
public AbstractHandler ( ComponentModel model ) : System
model Castle.Core.ComponentModel
return System

AddCustomDependencyValue() public method

TODO: Pendent
public AddCustomDependencyValue ( string key, object value ) : void
key string
value object
return void

AddDependency() protected method

Invoked by EnsureDependenciesCanBeSatisfied in order to check if a dependency can be satisfied. If not, the handler is set to a 'waiting dependency' state.
This method registers the dependencies within the correct collection or dictionary and changes the handler state to HandlerState.WaitingDependency
protected AddDependency ( DependencyModel dependency ) : void
dependency Castle.Core.DependencyModel
return void

CanResolve() public method

public CanResolve ( CreationContext context, ISubDependencyResolver parentResolver, ComponentModel model, DependencyModel dependency ) : bool
context CreationContext
parentResolver ISubDependencyResolver
model Castle.Core.ComponentModel
dependency Castle.Core.DependencyModel
return bool

CreateLifestyleManager() protected method

Creates an implementation of ILifestyleManager based on LifestyleType and invokes ILifestyleManager.Init to initialize the newly created manager.
protected CreateLifestyleManager ( IComponentActivator activator ) : ILifestyleManager
activator IComponentActivator
return ILifestyleManager

DependencySatisfied() protected method

Invoked by the kernel when one of registered dependencies were satisfied by new components registered.
Handler for the event IKernelEvents.HandlerRegistered
protected DependencySatisfied ( IHandler handler, bool &stateChanged ) : void
handler IHandler
stateChanged bool
return void

Dispose() public method

public Dispose ( ) : void
return void

EnsureDependenciesCanBeSatisfied() protected method

Checks if the handler is able to, at very least, satisfy the dependencies for the constructor with less parameters
For each non*optional dependency, the implementation will invoke AddDependency
protected EnsureDependenciesCanBeSatisfied ( ) : void
return void

HasCustomParameter() public method

TODO: Pendent
public HasCustomParameter ( string key ) : bool
key string
return bool

Init() public method

Saves the kernel instance, subscribes to IKernelEvents.AddedAsChildKernel event, creates the lifestyle manager instance and computes the handler state.
public Init ( IKernel kernel ) : void
kernel IKernel
return void

ObtainDependencyDetails() public method

Returns human readable list of dependencies this handler is waiting for.
public ObtainDependencyDetails ( IList dependenciesChecked ) : String
dependenciesChecked IList
return String

OnAddedAsChildKernel() protected method

Invoked when the container receives a parent container reference.
This method implementation checks whether the parent container is able to supply the dependencies for this handler.
protected OnAddedAsChildKernel ( object sender, EventArgs e ) : void
sender object
e System.EventArgs
return void

Release() public abstract method

Should be implemented by derived classes: disposes the component instance (or recycle it)
public abstract Release ( object instance ) : void
instance object
return void

RemoveCustomDependencyValue() public method

TODO: Pendent
public RemoveCustomDependencyValue ( string key ) : void
key string
return void

Resolve() public abstract method

Should be implemented by derived classes: returns an instance of the component this handler is responsible for
public abstract Resolve ( CreationContext context ) : object
context CreationContext
return object

Resolve() public method

public Resolve ( CreationContext context, ISubDependencyResolver parentResolver, ComponentModel model, DependencyModel dependency ) : object
context CreationContext
parentResolver ISubDependencyResolver
model Castle.Core.ComponentModel
dependency Castle.Core.DependencyModel
return object

SetNewState() protected method

protected SetNewState ( HandlerState newState ) : void
newState HandlerState
return void

Property Details

lifestyleManager protected property

Lifestyle manager instance
protected ILifestyleManager lifestyleManager
return ILifestyleManager