Package net.officefloor.frame.api.build
Interface OfficeFloorBuilder
-
- All Known Implementing Classes:
OfficeFloorBuilderImpl
public interface OfficeFloorBuilderBuilder of anOfficeFloor.- Author:
- Daniel Sagenschneider
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description <O extends java.lang.Enum<O>,F extends java.lang.Enum<F>,MS extends ManagedObjectSource<O,F>>
ManagedObjectBuilder<F>addManagedObject(java.lang.String managedObjectSourceName, java.lang.Class<MS> managedObjectSourceClass)Adds aManagedObjectSourceto thisOfficeFloorBuilder.<O extends java.lang.Enum<O>,F extends java.lang.Enum<F>>
ManagedObjectBuilder<F>addManagedObject(java.lang.String managedObjectSourceName, ManagedObjectSource<O,F> managedObjectSource)Adds aManagedObjectSourceto thisOfficeFloorBuilder.OfficeBuilderaddOffice(java.lang.String officeName)Adds anOfficeon theOfficeFloor.voidaddOfficeFloorListener(OfficeFloorListener listener)Adds anOfficeFloorListener.voidaddOfficeVisitor(OfficeVisitor visitor)Adds anOfficeVisitor.voidaddProfile(java.lang.String profile)Adds an active profile for theOfficeFloor.voidaddResources(ResourceSource resourceSource)Adds aResourceSourceto locate resources.<TS extends TeamSource>
TeamBuilder<TS>addTeam(java.lang.String teamName, java.lang.Class<TS> teamSourceClass)<TS extends TeamSource>
TeamBuilder<TS>addTeam(java.lang.String teamName, TS teamSource)OfficeFloorbuildOfficeFloor()Builds theOfficeFloor.OfficeFloorbuildOfficeFloor(OfficeFloorIssues issuesListener)Builds theOfficeFloor.<TS extends TeamSource>
TeamBuilder<TS>setBreakChainTeam(java.lang.Class<TS> teamSourceClass)Specifies the breakFunctionStatechainTeam.voidsetClassLoader(java.lang.ClassLoader classLoader)Allows overriding theClassLoaderprovided to the sources by theSourceContext.voidsetClockFactory(ClockFactory clockFactory)voidsetEscalationHandler(EscalationHandler escalationHandler)Specifies theEscalationHandlerfor issues escalating out of theOfficeinstances.<XS extends ExecutiveSource>
ExecutiveBuilder<XS>setExecutive(java.lang.Class<XS> executiveSourceClass)<XS extends ExecutiveSource>
ExecutiveBuilder<XS>setExecutive(XS executiveSource)voidsetMaxStartupWaitTime(long maxStartupWaitTime)Specifies the maximum time in milliseconds to wait forOfficeFloorto start.voidsetThreadDecorator(java.util.function.Consumer<java.lang.Thread> decorator)Decorates all theThreadinstances created by theTeamSourceContext.
-
-
-
Method Detail
-
addProfile
void addProfile(java.lang.String profile)
Adds an active profile for theOfficeFloor.- Parameters:
profile- Active profile for theOfficeFloor.
-
setClassLoader
void setClassLoader(java.lang.ClassLoader classLoader)
Allows overriding theClassLoaderprovided to the sources by theSourceContext.- Parameters:
classLoader-ClassLoader.
-
setClockFactory
void setClockFactory(ClockFactory clockFactory)
- Parameters:
clockFactory-ClockFactory.
-
setMaxStartupWaitTime
void setMaxStartupWaitTime(long maxStartupWaitTime)
Specifies the maximum time in milliseconds to wait forOfficeFloorto start.- Parameters:
maxStartupWaitTime- Maximum time in milliseconds to wait forOfficeFloorto start.
-
setThreadDecorator
void setThreadDecorator(java.util.function.Consumer<java.lang.Thread> decorator)
Decorates all theThreadinstances created by theTeamSourceContext.- Parameters:
decorator- Decorates all theThreadinstances created by theTeamSourceContext.
-
addResources
void addResources(ResourceSource resourceSource)
Adds aResourceSourceto locate resources.- Parameters:
resourceSource-ResourceSource.
-
addOfficeVisitor
void addOfficeVisitor(OfficeVisitor visitor)
Adds anOfficeVisitor.- Parameters:
visitor-OfficeVisitor.
-
addOfficeFloorListener
void addOfficeFloorListener(OfficeFloorListener listener)
Adds anOfficeFloorListener.- Parameters:
listener-OfficeFloorListener.
-
addManagedObject
<O extends java.lang.Enum<O>,F extends java.lang.Enum<F>,MS extends ManagedObjectSource<O,F>> ManagedObjectBuilder<F> addManagedObject(java.lang.String managedObjectSourceName, java.lang.Class<MS> managedObjectSourceClass)
Adds aManagedObjectSourceto thisOfficeFloorBuilder.- Type Parameters:
O- Dependency key type.F- Flow key type.MS-ManagedObjectSourcetype.- Parameters:
managedObjectSourceName- Name of theManagedObjectSource.managedObjectSourceClass- Class of theManagedObjectSource.- Returns:
ManagedObjectBuilder.
-
addManagedObject
<O extends java.lang.Enum<O>,F extends java.lang.Enum<F>> ManagedObjectBuilder<F> addManagedObject(java.lang.String managedObjectSourceName, ManagedObjectSource<O,F> managedObjectSource)
Adds aManagedObjectSourceto thisOfficeFloorBuilder.- Type Parameters:
O- Dependency key type.F- Flow key type.- Parameters:
managedObjectSourceName- Name of theManagedObjectSource.managedObjectSource-ManagedObjectSourceinstance to use.- Returns:
ManagedObjectBuilder.
-
addTeam
<TS extends TeamSource> TeamBuilder<TS> addTeam(java.lang.String teamName, java.lang.Class<TS> teamSourceClass)
- Type Parameters:
TS-TeamSourcetype.- Parameters:
teamName- Name to register theTeamunder.teamSourceClass-TeamSourceClassto source theTeam.- Returns:
TeamBuilderto build theTeam.
-
addTeam
<TS extends TeamSource> TeamBuilder<TS> addTeam(java.lang.String teamName, TS teamSource)
- Type Parameters:
TS-TeamSourcetype.- Parameters:
teamName- Name to register theTeamunder.teamSource-TeamSourceto source theTeam.- Returns:
TeamBuilderto build theTeam.
-
setExecutive
<XS extends ExecutiveSource> ExecutiveBuilder<XS> setExecutive(java.lang.Class<XS> executiveSourceClass)
- Type Parameters:
XS-ExecutiveSourcetype.- Parameters:
executiveSourceClass-ExecutiveSourceClassto source theExecutive.- Returns:
ExecutiveBuilderto build theExecutive.
-
setExecutive
<XS extends ExecutiveSource> ExecutiveBuilder<XS> setExecutive(XS executiveSource)
- Type Parameters:
XS-ExecutiveSourcetype.- Parameters:
executiveSource-ExecutiveSourceto source theExecutive.- Returns:
ExecutiveBuilderto build theExecutive.
-
setBreakChainTeam
<TS extends TeamSource> TeamBuilder<TS> setBreakChainTeam(java.lang.Class<TS> teamSourceClass)
Specifies the break
FunctionStatechainTeam.This need not be specified, but is available to override the default
Team.- Type Parameters:
TS-TeamSourcetype.- Parameters:
teamSourceClass-TeamSourceto source theTeam.- Returns:
TeamBuilderto build theTeam.
-
addOffice
OfficeBuilder addOffice(java.lang.String officeName)
Adds anOfficeon theOfficeFloor.- Parameters:
officeName- Name of theOffice.- Returns:
OfficeBuilderto build theOffice.
-
setEscalationHandler
void setEscalationHandler(EscalationHandler escalationHandler)
Specifies theEscalationHandlerfor issues escalating out of theOfficeinstances.- Parameters:
escalationHandler-EscalationHandler.
-
buildOfficeFloor
OfficeFloor buildOfficeFloor(OfficeFloorIssues issuesListener)
Builds theOfficeFloor.- Parameters:
issuesListener-OfficeFloorIssuesto listen for issues in constructing theOfficeFloor.- Returns:
- Built
OfficeFloorif successfully built, ornullif could not constructOfficeFloorwith reasons passed to theOfficeFloorIssues.
-
buildOfficeFloor
OfficeFloor buildOfficeFloor() throws OfficeFloorBuildException
Builds theOfficeFloor.- Returns:
- Built
OfficeFloor. - Throws:
OfficeFloorBuildException- If fails to build theOfficeFloor.- See Also:
OfficeFloorBuildException
-
-