Package net.officefloor.frame.api.build
Interface OfficeFloorBuilder
- All Known Implementing Classes:
OfficeFloorBuilderImpl
public interface OfficeFloorBuilder
Builder of an
OfficeFloor.- Author:
- Daniel Sagenschneider
-
Method Summary
Modifier and TypeMethodDescription<O extends Enum<O>,F extends Enum<F>, MS extends ManagedObjectSource<O, F>>
ManagedObjectBuilder<F>addManagedObject(String managedObjectSourceName, Class<MS> managedObjectSourceClass) Adds aManagedObjectSourceto thisOfficeFloorBuilder.<O extends Enum<O>,F extends Enum<F>>
ManagedObjectBuilder<F>addManagedObject(String managedObjectSourceName, ManagedObjectSource<O, F> managedObjectSource) Adds aManagedObjectSourceto thisOfficeFloorBuilder.Adds anOfficeon theOfficeFloor.voidaddOfficeFloorListener(OfficeFloorListener listener) Adds anOfficeFloorListener.voidaddOfficeVisitor(OfficeVisitor visitor) Adds anOfficeVisitor.voidaddProfile(String profile) Adds an active profile for theOfficeFloor.voidaddResources(ResourceSource resourceSource) Adds aResourceSourceto locate resources.<TS extends TeamSource>
TeamBuilder<TS><TS extends TeamSource>
TeamBuilder<TS>Builds theOfficeFloor.buildOfficeFloor(OfficeFloorIssues issuesListener) Builds theOfficeFloor.voidsetClassLoader(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(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(Consumer<Thread> decorator) Decorates all theThreadinstances created by theTeamSourceContext.
-
Method Details
-
addProfile
Adds an active profile for theOfficeFloor.- Parameters:
profile- Active profile for theOfficeFloor.
-
setClassLoader
Allows overriding theClassLoaderprovided to the sources by theSourceContext.- Parameters:
classLoader-ClassLoader.
-
setClockFactory
- 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
Decorates all theThreadinstances created by theTeamSourceContext.- Parameters:
decorator- Decorates all theThreadinstances created by theTeamSourceContext.
-
addResources
Adds aResourceSourceto locate resources.- Parameters:
resourceSource-ResourceSource.
-
addOfficeVisitor
Adds anOfficeVisitor.- Parameters:
visitor-OfficeVisitor.
-
addOfficeFloorListener
Adds anOfficeFloorListener.- Parameters:
listener-OfficeFloorListener.
-
addManagedObject
<O extends Enum<O>,F extends Enum<F>, ManagedObjectBuilder<F> addManagedObjectMS extends ManagedObjectSource<O, F>> (String managedObjectSourceName, 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 Enum<O>,F extends Enum<F>> ManagedObjectBuilder<F> addManagedObject(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
- Type Parameters:
TS-TeamSourcetype.- Parameters:
teamName- Name to register theTeamunder.teamSourceClass-TeamSourceClassto source theTeam.- Returns:
TeamBuilderto build theTeam.
-
addTeam
- Type Parameters:
TS-TeamSourcetype.- Parameters:
teamName- Name to register theTeamunder.teamSource-TeamSourceto source theTeam.- Returns:
TeamBuilderto build theTeam.
-
setExecutive
- Type Parameters:
XS-ExecutiveSourcetype.- Parameters:
executiveSourceClass-ExecutiveSourceClassto source theExecutive.- Returns:
ExecutiveBuilderto build theExecutive.
-
setExecutive
- Type Parameters:
XS-ExecutiveSourcetype.- Parameters:
executiveSource-ExecutiveSourceto source theExecutive.- Returns:
ExecutiveBuilderto build theExecutive.
-
addOffice
Adds anOfficeon theOfficeFloor.- Parameters:
officeName- Name of theOffice.- Returns:
OfficeBuilderto build theOffice.
-
setEscalationHandler
Specifies theEscalationHandlerfor issues escalating out of theOfficeinstances.- Parameters:
escalationHandler-EscalationHandler.
-
buildOfficeFloor
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
Builds theOfficeFloor.- Returns:
- Built
OfficeFloor. - Throws:
OfficeFloorBuildException- If fails to build theOfficeFloor.- See Also:
-