org.apache.felix.ipojo.manipulator.spi

## Class AbsBindingModule

- java.lang.Object
- - org.apache.felix.ipojo.manipulator.spi.AbsBindingModule

All Implemented Interfaces:
  Iterable<Binding>, Module

Direct Known Subclasses:
  DefaultBindingModule

    public abstract class AbsBindingModule
    extends Object
    implements Module

All provided `Module`s have to inherit from this class. It provides a simple to use DSL to express annotation bindings.

Author:
  Felix Project Team

### Nested Class Summary

Nested Classes
`class` `AbsBindingModule.AnnotationBindingBuilder` DSL helper class.
`class` `AbsBindingModule.ConditionalBindingBuilder`
`class` `AbsBindingModule.HandlerBindingBuilder`
`class` `AbsBindingModule.StereotypeBindingBuilder`

### Constructor Summary

Constructors
Constructor and Description
`AbsBindingModule()`

### Method Summary

All Methods Instance Methods Abstract Methods Concrete Methods
`protected AbsBindingModule.AnnotationBindingBuilder` `bind(Class<? extends Annotation> annotationType)` Initiate an annotation binding.
`protected AbsBindingModule.HandlerBindingBuilder` `bindHandlerBinding(Class<? extends Annotation> annotationType)`
`protected void` `bindIgnore(Class<? extends Annotation> annotationType)`
`protected AbsBindingModule.StereotypeBindingBuilder` `bindStereotype(Class<? extends Annotation> annotationType)`
`protected abstract void` `configure()` Configure the bindings provided by this module.
`Iterator<Binding>` `iterator()`
`void` `load()` Load the bindings provided by this module (only once).

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

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

### Methods inherited from interface java.lang.Iterable

`forEach, spliterator`

### Constructor Detail

#### AbsBindingModule

    public AbsBindingModule()

### Method Detail

#### load

    public void load()

Description copied from interface: `Module`
Load the bindings provided by this module (only once).

Specified by:
  `load` in interface `Module`

#### configure

    protected abstract void configure()

Configure the bindings provided by this module.

#### iterator

    public Iterator<Binding> iterator()

Specified by:
  `iterator` in interface `Iterable<Binding>`

#### bind

    protected AbsBindingModule.AnnotationBindingBuilder bind(Class<? extends Annotation> annotationType)

Initiate an annotation binding. Examples:

         AnnotationVisitorFactory factory = new CompositeVisitorFactory();
         bind(Composite.class).to(factory);
         bind(Composite.class).when(.. some condition ..)
                              .to(factory);

Parameters:
  `annotationType` - the annotation that will be bound to the `AnnotationVisitorFactory`

#### bindStereotype

    protected AbsBindingModule.StereotypeBindingBuilder bindStereotype(Class<? extends Annotation> annotationType)

#### bindHandlerBinding

    protected AbsBindingModule.HandlerBindingBuilder bindHandlerBinding(Class<? extends Annotation> annotationType)

#### bindIgnore

    protected void bindIgnore(Class<? extends Annotation> annotationType)