org.qi4j.bootstrap

## Interface ApplicationAssemblyFactory

-     public interface ApplicationAssemblyFactory

  Factory for creating new Zest application assemblies. Typically you will implement one or more Assemblers, wrap them in an ApplicationAssembler, which then uses this factory to assemble and create applications.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `ApplicationAssembly` | `newApplicationAssembly()` Create a new ApplicationAssembly that can be used for the above method.
    `ApplicationAssembly` | `newApplicationAssembly(Assembler assembler)` Create a new application with one layer and one module.
    `ApplicationAssembly` | `newApplicationAssembly(Assembler[][][] assemblers)` Create a new application with the same amount of layers as the first array size, with modules according to the second array size, and then use the third array for assemblers of each module.

- - ### Method Detail

    - #### newApplicationAssembly

          ApplicationAssembly newApplicationAssembly(Assembler assembler)
                                                     throws AssemblyException

      Create a new application with one layer and one module.
      Parameters:
        `assembler` - the assembler for the single module
      Returns:
        the application instance
      Throws:
        `AssemblyException` - if the application could not be assembled

    - #### newApplicationAssembly

          ApplicationAssembly newApplicationAssembly(Assembler[][][] assemblers)
                                                     throws AssemblyException

      Create a new application with the same amount of layers as the first array size, with modules according to the second array size, and then use the third array for assemblers of each module. This gives you a simple way to create "pancake" layered applications.
      Parameters:
        `assemblers` - the set of assemblers for the application
      Returns:
        the application instance
      Throws:
        `AssemblyException` - if the application could not be assembled

    - #### newApplicationAssembly

          ApplicationAssembly newApplicationAssembly()

      Create a new ApplicationAssembly that can be used for the above method.
      Returns:
        a new ApplicationAssembly