Class TeamSourceContextWrapper
- java.lang.Object
-
- net.officefloor.frame.impl.construct.source.SourcePropertiesImpl
-
- net.officefloor.frame.impl.construct.source.SourceContextImpl
-
- net.officefloor.frame.api.executive.TeamSourceContextWrapper
-
- All Implemented Interfaces:
ServiceContext,SourceContext,SourceProperties,TeamSourceContext
public class TeamSourceContextWrapper extends SourceContextImpl implements TeamSourceContext
Wrapper ofTeamSourceContextto enable customising theTeam.- Author:
- Daniel Sagenschneider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceTeamSourceContextWrapper.WorkerEnvironment
-
Constructor Summary
Constructors Constructor Description TeamSourceContextWrapper(ExecutiveContext context, java.util.function.Function<java.lang.Integer,java.lang.Integer> teamSizeCalculator, java.lang.String teamNameSuffix, TeamSourceContextWrapper.WorkerEnvironment workerEnvironment)Instantiate.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.StringgetTeamName()Obtains the name of theTeamto be created from theTeamSource.intgetTeamSize()Obtains the size of theTeam.intgetTeamSize(int defaultSize)Allows obtaining the size of theTeam, without forcing it to be configured.java.util.concurrent.ThreadFactorygetThreadFactory()Obtains theThreadFactoryfor theTeam.-
Methods inherited from class net.officefloor.frame.impl.construct.source.SourceContextImpl
getClassLoader, getClock, getLogger, getName, getOptionalResource, getProfiles, getResource, isLoadingType, loadClass, loadOptionalClass, loadOptionalService, loadOptionalServices, loadService, loadService, loadServices
-
Methods inherited from class net.officefloor.frame.impl.construct.source.SourcePropertiesImpl
addProperty, getProperties, getProperty, getProperty, getPropertyNames
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface net.officefloor.frame.api.source.SourceContext
getClassLoader, getClock, getLogger, getName, getOptionalResource, getProfiles, getResource, isLoadingType, loadClass, loadOptionalClass, loadOptionalService, loadOptionalServices, loadService, loadService, loadServices
-
Methods inherited from interface net.officefloor.frame.api.source.SourceProperties
getProperties, getProperty, getProperty, getPropertyNames
-
-
-
-
Constructor Detail
-
TeamSourceContextWrapper
public TeamSourceContextWrapper(ExecutiveContext context, java.util.function.Function<java.lang.Integer,java.lang.Integer> teamSizeCalculator, java.lang.String teamNameSuffix, TeamSourceContextWrapper.WorkerEnvironment workerEnvironment)
Instantiate.- Parameters:
context-ExecutiveContext.teamSizeCalculator- Calculates theTeamsize from the configuredTeamsize.teamNameSuffix- Optional suffix for theTeamname. May benullfor no suffix.workerEnvironment-TeamSourceContextWrapper.WorkerEnvironment. May benull.
-
-
Method Detail
-
getTeamName
public java.lang.String getTeamName()
Description copied from interface:TeamSourceContextObtains the name of the
Teamto be created from theTeamSource.This enables naming the
Threadinstances for theTeamto be specific to theTeam.- Specified by:
getTeamNamein interfaceTeamSourceContext- Returns:
- Name of the
Teamto be created from theTeamSource.
-
getTeamSize
public int getTeamSize()
Description copied from interface:TeamSourceContextObtains the size of the
Team.Typically this is the maximum number of
Threadinstances for theTeam. However, for someTeamimplementations it may not be used (e.g.PassiveTeamSource).It is provided to allow the
Executiveto have some control overTeamsizes.- Specified by:
getTeamSizein interfaceTeamSourceContext- Returns:
Teamsize.
-
getTeamSize
public int getTeamSize(int defaultSize)
Description copied from interface:TeamSourceContextAllows obtaining the size of theTeam, without forcing it to be configured.- Specified by:
getTeamSizein interfaceTeamSourceContext- Parameters:
defaultSize- Default size of theTeam, if no size configured.- Returns:
Teamsize.
-
getThreadFactory
public java.util.concurrent.ThreadFactory getThreadFactory()
Description copied from interface:TeamSourceContextObtains the
ThreadFactoryfor theTeam.It is encouraged for
Teamimplementations to use this in creatingThreadinstances. This is to enable performance improvements byOfficeFloor, such asThreadLocalManagedObjectPoolsolutions to reduce pool locking overheads.- Specified by:
getThreadFactoryin interfaceTeamSourceContext- Returns:
ThreadFactoryfor theTeam.
-
-