CompleteFactoryAssembly
@MainActor
public final class CompleteFactoryAssembly<FC> where FC : ContainerFactory
Builds a ContainerFactory fulfilled with the children UIViewController factories.
let rootFactory = CompleteFactoryAssembly(factory: TabBarFactory())
.with(XibFactory<HomeViewController, Any?>, using: UITabBarController.add())
.with(XibFactory<AccountViewController, Any?>, using: UITabBarController.add())
.assemble()
NB: Order matters here
-
Constructor
Declaration
Swift
@MainActor public init(factory: FC)Parameters
factoryThe
ContainerFactoryinstance. -
Adds a
Factorythat is going to be used as a childDeclaration
Swift
@MainActor public final func with<ChildFC: Factory, A: ContainerAction, T: ContextTransformer>(_ childFactory: ChildFC, using action: A, adapting transformer: T) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where T.TargetContext == ChildFC.Context, T.SourceContext == FC.Context, A.ViewController == FC.ViewController -
Adds a
ContainerFactorythat is going to be used as a childDeclaration
Swift
@MainActor public final func with<ChildFC: ContainerFactory, A: ContainerAction, T: ContextTransformer>(_ childContainer: ChildFC, using action: A, adapting transformer: T) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where T.TargetContext == ChildFC.Context, T.SourceContext == FC.Context, A.ViewController == FC.ViewControllerParameters
childContainerThe instance of
ContainerFactory.actionThe instance of
ContainerFactoryto be used to integrate the view controller produced by the factory. -
Adds a
Factoryas the last view controller in the stack.Declaration
Swift
@MainActor public final func with<ChildFC, T>(_ childFactory: ChildFC, adapting transformer: T) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where ChildFC : Factory, T : ContextTransformer, FC.Context == T.SourceContext, ChildFC.Context == T.TargetContextParameters
childFactoryThe instance of
Factory.transformerThe instance of
ContextTransformerto use to adapt parentContainerFactoryContext. -
Adds a
ContainerFactoryas the last view controller in the stack.Declaration
Swift
@MainActor public final func with<ChildFC, T>(_ childContainer: ChildFC, adapting transformer: T) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where ChildFC : ContainerFactory, T : ContextTransformer, FC.Context == T.SourceContext, ChildFC.Context == T.TargetContextParameters
childContainerThe instance of
ContainerFactory.transformerThe instance of
ContextTransformerto use to adapt parentContainerFactoryContext. -
Adds a
Factorythat is going to be used as a childDeclaration
Swift
@MainActor public final func with<ChildFC: Factory, A: ContainerAction>(_ childFactory: ChildFC, using action: A) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where ChildFC.Context == FC.Context, A.ViewController == FC.ViewController -
Adds a
ContainerFactorythat is going to be used as a childDeclaration
Swift
@MainActor public final func with<ChildFC: ContainerFactory, A: ContainerAction>(_ childContainer: ChildFC, using action: A) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where ChildFC.Context == FC.Context, A.ViewController == FC.ViewControllerParameters
childContainerThe instance of
ContainerFactory.actionThe instance of
ContainerFactoryto be used to integrate the view controller produced by the factory. -
Adds a
Factoryas the last view controller in the stack.Declaration
Swift
@MainActor public final func with<ChildFC>(_ childFactory: ChildFC) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where ChildFC : Factory, FC.Context == ChildFC.ContextParameters
childFactoryThe instance of
Factory. -
Adds a
ContainerFactoryas the last view controller in the stack.Declaration
Swift
@MainActor public final func with<ChildFC>(_ childContainer: ChildFC) -> CompleteFactoryChainAssembly<FC, ChildFC.ViewController, ChildFC.Context> where ChildFC : ContainerFactory, FC.Context == ChildFC.ContextParameters
childContainerThe instance of
ContainerFactory. -
Assembles all the children factories provided and returns a
ContainerFactoryinstance.Declaration
Swift
@MainActor public final func assemble() -> CompleteFactory<FC>Return Value
The
CompleteFactorywith child factories provided.