Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.nanocontainer.aop
Interface AspectsContainer

All Known Subinterfaces:
  AspectablePicoContainer, AspectsManager

All Known Implementing Classes:
  DynaopAspectsManager

    public interface AspectsContainer

Represents the collection of aspects (pointuts + advice) to be applied to a Pico container. Provides methods for registering mixin and interceptor advice. Advice can be applied to all components in the container that match a pointcut, or advice can be applied to just one component. Advice objects may themselves be components in the container, with dependencies on other components.

Version:
  $Revision: 3144 $
Author:
  Stephen Molitor

Method Summary
`PointcutsFactory` | `getPointcutsFactory()` Produces a pointcuts factory that can be used to create pointcuts to be used in aspects registered with this `AspectsContainer`.
`void` | `registerInterceptor(ClassPointcut classPointcut, MethodPointcut methodPointcut, org.aopalliance.intercept.MethodInterceptor interceptor)` Registers container scoped interceptor advice.
`void` | `registerInterceptor(ClassPointcut classPointcut, MethodPointcut methodPointcut, Object interceptorComponentKey)` Registers container supplied container scoped interceptor advice.
`void` | `registerInterceptor(ComponentPointcut componentPointcut, MethodPointcut methodPointcut, org.aopalliance.intercept.MethodInterceptor interceptor)` Registers component scoped interceptor advice.
`void` | `registerInterceptor(ComponentPointcut componentPointcut, MethodPointcut methodPointcut, Object interceptorComponentKey)` Registers component scoped interceptor advice.
`void` | `registerInterfaces(ClassPointcut classPointcut, Class[] interfaces)` Adds interfaces to classes picked by the class pointcut.
`void` | `registerInterfaces(ComponentPointcut componentPointcut, Class[] interfaces)` Adds interfaces to components picked by the component pointcut.
`void` | `registerMixin(ClassPointcut classPointcut, Class mixinClass)` Registers container scoped mixin advice.
`void` | `registerMixin(ClassPointcut classPointcut, Class[] interfaces, Class mixinClass)` Registers container scoped mixin advice.
`void` | `registerMixin(ComponentPointcut componentPointcut, Class mixinClass)` Registers component scoped mixin advice.
`void` | `registerMixin(ComponentPointcut componentPointcut, Class[] interfaces, Class mixinClass)` Registers component scoped mixin advice.

Method Detail

### registerInterceptor

    void registerInterceptor(ClassPointcut classPointcut,
                             MethodPointcut methodPointcut,
                             org.aopalliance.intercept.MethodInterceptor interceptor)

  Registers container scoped interceptor advice. The advice will be applied to all components in the container whose class satisfies the `classPointcut`. The interceptor will only intercept methods that match the `methodPointcut`.

  Parameters:
    `classPointcut` - classes to apply the interceptor to.
    `methodPointcut` - methods to apply the interceptor to.
    `interceptor` - the interceptor advice object.

### registerInterceptor

    void registerInterceptor(ComponentPointcut componentPointcut,
                             MethodPointcut methodPointcut,
                             org.aopalliance.intercept.MethodInterceptor interceptor)

  Registers component scoped interceptor advice. The advice will be applied to all components in the container whose key satisfies `componentPointcut`. The interceptor will only intercept methods that match the `methodPointcut`.

  Parameters:
    `componentPointcut` - components to apply the interceptor to.
    `methodPointcut` - methods to apply the interceptor to.
    `interceptor` - the interceptor advice object.

### registerInterceptor

    void registerInterceptor(ClassPointcut classPointcut,
                             MethodPointcut methodPointcut,
                             Object interceptorComponentKey)

  Registers container supplied container scoped interceptor advice. The interceptor advice object itself is a component in the container, specified by `interceptorComponentKey`. The advice will be applied to all components in the container whose class satisfies the `classPointcut`. The interceptor will only intercept methods that match the `methodPointcut`.

  Parameters:
    `classPointcut` - classes to apply the interceptor to.
    `methodPointcut` - methods to apply the interceptor to.
    `interceptorComponentKey` - the interceptor component key.

### registerInterceptor

    void registerInterceptor(ComponentPointcut componentPointcut,
                             MethodPointcut methodPointcut,
                             Object interceptorComponentKey)

  Registers component scoped interceptor advice. The interceptor advice object itself is a component in the container, specified by the `interceptorComponentKey`. The advice will be applied to all components in the container whose key satisfies `componentPointcut`. The interceptor will only intercept methods that match the `methodPointcut`.

  Parameters:
    `componentPointcut` - components to apply the interceptor to.
    `methodPointcut` - methods to apply the interceptor to.
    `interceptorComponentKey` - the interceptor component key.

### registerMixin

    void registerMixin(ClassPointcut classPointcut,
                       Class[] interfaces,
                       Class mixinClass)

  Registers container scoped mixin advice. The mixin will be added to all components in the container whose class satisfies the `classPointcut`.

  If a component of type `mixinClass` has been registered in the container, that component will be used as the mixin. Otherwise a new object of type `mixinClass` will be instantiated each time the mixin is applied to a component. Any dependencies the mixin has will be supplied from components in the container, or, if there are no dependencies, the default constructor will be invoked to instantiate the mixin.

  Parameters:
    `classPointcut` - classes to add mixin to.
    `interfaces` - interfaces the mixin implements.
    `mixinClass` - the mixin implementation.

### registerMixin

    void registerMixin(ComponentPointcut componentPointcut,
                       Class[] interfaces,
                       Class mixinClass)

  Registers component scoped mixin advice. The mixin will be added to all components in the container whose key satisfies the `componentPointcut`.

  Parameters:
    `componentPointcut` - classes to add mixin to.
    `interfaces` - interfaces the mixin implements.
    `mixinClass` - the mixin implementation.
  See Also:
    `for details on how `mixinClass` gets instantiated.`

### registerMixin

    void registerMixin(ClassPointcut classPointcut,
                       Class mixinClass)

  Registers container scoped mixin advice. The mixin will be added to all components in the container whose class satisfies the `classPointcut`. Convenience method that uses all interfaces implemented by the mixin class.

  Parameters:
    `classPointcut` - classes to add mixin to.
    `mixinClass` - the mixin implementation.
  See Also:
    `for details on how `mixinClass` gets instantiated.`

### registerMixin

    void registerMixin(ComponentPointcut componentPointcut,
                       Class mixinClass)

  Registers component scoped mixin advice. The mixin will be added to all components in the container whose key satisfies the `componentPointcut`. Convenience method that uses all interfaces implemented by the mixin class.

  Parameters:
    `componentPointcut` - classes to add mixin to.
    `mixinClass` - the mixin implementation.
  See Also:
    `for details on how `mixinClass` gets instantiated.`

### registerInterfaces

    void registerInterfaces(ClassPointcut classPointcut,
                            Class[] interfaces)

  Adds interfaces to classes picked by the class pointcut.

  This can be handy when you want to add an aggregate helper interface that extends all the mixin interfaces added, to avoid the need for casting. Note that the interfaces will not be added if no advice (interceptor or mixin) has been applied to the component.

  Parameters:
    `classPointcut` - classes to add interfaces to.
    `interfaces` - the interfaces to add.

### registerInterfaces

    void registerInterfaces(ComponentPointcut componentPointcut,
                            Class[] interfaces)

  Adds interfaces to components picked by the component pointcut.

  Parameters:
    `componentPointcut` - components to add interfaces to.
    `interfaces` - the interfaces to add.
  See Also:
    `for notes on using this method.`

### getPointcutsFactory

    PointcutsFactory getPointcutsFactory()

  Produces a pointcuts factory that can be used to create pointcuts to be used in aspects registered with this `AspectsContainer`. Note that you are not limited to pointcuts produced by this factory; any pointcut that implements the appropriate `ClassPointcut`, `MethodPointcut` or `ComponentPointcut` will work.

  Returns:
    a pointcuts factory.

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2003-2007 Codehaus. All Rights Reserved.