org.apache.felix.ipojo.extender

## Interface Declaration

All Known Subinterfaces:
  ExtensionDeclaration, InstanceDeclaration, TypeDeclaration

All Known Implementing Classes:
  AbstractDeclaration, DefaultExtensionDeclaration, DefaultInstanceDeclaration, DefaultTypeDeclaration

    public interface Declaration

A declaration is a creation instruction of an entity (Component type, Factory, Instance...). All declarations are exposed as services. Processors are tracking the adequate declaration type and create the entity.

Declaration can be bound or unbound whether they are fulfilled. When they are unbound, a message or/and an error can be set.

### Method Summary

All Methods Instance Methods Abstract Methods
`void` `bind()` Marks the declaration bound.
`Status` `getStatus()` Gets the declaration status.
`void` `unbind(java.lang.String message)` Unbinds the declaration.
`void` `unbind(java.lang.String message, java.lang.Throwable throwable)` Unbinds the declaration

### Method Detail

#### getStatus

    Status getStatus()

Gets the declaration status.

Returns:
  the current status. As Status are immutable, it returns a new object every time.

#### bind

    void bind()

Marks the declaration bound.

#### unbind

    void unbind(java.lang.String message)

Unbinds the declaration.

Parameters:
  `message` - an explanation

#### unbind

    void unbind(java.lang.String message,
                java.lang.Throwable throwable)

Unbinds the declaration

Parameters:
  `message` - an explanation
  `throwable` - an error