org.qi4j.bootstrap

## Interface AssemblyVisitor<ThrowableType extends Throwable>

- All Known Implementing Classes:
    AssemblyVisitorAdapter

      public interface AssemblyVisitor<ThrowableType extends Throwable>

  Visitor interface to visit the whole or parts of an assembly.

  Implement this interface and call visit() on ApplicationAssembly, LayerAssembly or ModuleAssembly.

  This can be used to, for example, add metadata to all entities, add concerns on composites, or similar.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `visitApplication(ApplicationAssembly assembly)`
    `void` | `visitComposite(TransientDeclaration declaration)`
    `void` | `visitEntity(EntityDeclaration declaration)`
    `void` | `visitImportedService(ImportedServiceDeclaration declaration)`
    `void` | `visitLayer(LayerAssembly assembly)`
    `void` | `visitModule(ModuleAssembly assembly)`
    `void` | `visitObject(ObjectDeclaration declaration)`
    `void` | `visitService(ServiceDeclaration declaration)`
    `void` | `visitValue(ValueDeclaration declaration)`

- - ### Method Detail

    - #### visitApplication

          void visitApplication(ApplicationAssembly assembly)
                                throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitLayer

          void visitLayer(LayerAssembly assembly)
                          throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitModule

          void visitModule(ModuleAssembly assembly)
                           throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitComposite

          void visitComposite(TransientDeclaration declaration)
                              throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitEntity

          void visitEntity(EntityDeclaration declaration)
                           throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitService

          void visitService(ServiceDeclaration declaration)
                            throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitImportedService

          void visitImportedService(ImportedServiceDeclaration declaration)
                                    throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitValue

          void visitValue(ValueDeclaration declaration)
                          throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`

    - #### visitObject

          void visitObject(ObjectDeclaration declaration)
                           throws ThrowableType extends Throwable

      Throws:
        `ThrowableType extends Throwable`