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 ofTeamSourceContext
to enable customising theTeam
.- Author:
- Daniel Sagenschneider
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
TeamSourceContextWrapper.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.String
getTeamName()
Obtains the name of theTeam
to be created from theTeamSource
.int
getTeamSize()
Obtains the size of theTeam
.int
getTeamSize(int defaultSize)
Allows obtaining the size of theTeam
, without forcing it to be configured.java.util.concurrent.ThreadFactory
getThreadFactory()
Obtains theThreadFactory
for 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 theTeam
size from the configuredTeam
size.teamNameSuffix
- Optional suffix for theTeam
name. May benull
for no suffix.workerEnvironment
-TeamSourceContextWrapper.WorkerEnvironment
. May benull
.
-
-
Method Detail
-
getTeamName
public java.lang.String getTeamName()
Description copied from interface:TeamSourceContext
Obtains the name of the
Team
to be created from theTeamSource
.This enables naming the
Thread
instances for theTeam
to be specific to theTeam
.- Specified by:
getTeamName
in interfaceTeamSourceContext
- Returns:
- Name of the
Team
to be created from theTeamSource
.
-
getTeamSize
public int getTeamSize()
Description copied from interface:TeamSourceContext
Obtains the size of the
Team
.Typically this is the maximum number of
Thread
instances for theTeam
. However, for someTeam
implementations it may not be used (e.g.PassiveTeamSource
).It is provided to allow the
Executive
to have some control overTeam
sizes.- Specified by:
getTeamSize
in interfaceTeamSourceContext
- Returns:
Team
size.
-
getTeamSize
public int getTeamSize(int defaultSize)
Description copied from interface:TeamSourceContext
Allows obtaining the size of theTeam
, without forcing it to be configured.- Specified by:
getTeamSize
in interfaceTeamSourceContext
- Parameters:
defaultSize
- Default size of theTeam
, if no size configured.- Returns:
Team
size.
-
getThreadFactory
public java.util.concurrent.ThreadFactory getThreadFactory()
Description copied from interface:TeamSourceContext
Obtains the
ThreadFactory
for theTeam
.It is encouraged for
Team
implementations to use this in creatingThread
instances. This is to enable performance improvements byOfficeFloor
, such asThreadLocal
ManagedObjectPool
solutions to reduce pool locking overheads.- Specified by:
getThreadFactory
in interfaceTeamSourceContext
- Returns:
ThreadFactory
for theTeam
.
-
-