Class ExecutiveContextImpl
- All Implemented Interfaces:
ExecutiveContext,ServiceContext,SourceContext,SourceProperties,TeamSourceContext
ExecutiveContext implementation.- Author:
- Daniel Sagenschneider
-
Constructor Summary
ConstructorsConstructorDescriptionExecutiveContextImpl(boolean isLoadingType, String teamName, boolean isRequestNoTeamOversight, int teamSize, TeamSource teamSource, Executive executive, ThreadFactoryManufacturer threadFactoryManufacturer, SourceProperties properties, SourceContext sourceContext) Initialise. -
Method Summary
Modifier and TypeMethodDescriptioncreateThreadFactory(String teamName) Creates aThreadFactoryfor theTeamname.Obtains the name of theTeamto be created from theTeamSource.intObtains the size of theTeam.intgetTeamSize(int defaultSize) Allows obtaining the size of theTeam, without forcing it to be configured.Obtains theTeamSourceto create theTeam.Obtains theThreadFactoryfor theTeam.booleanIndicates if requesting noTeamOversight.booleanIndicates if requiredTeamsize.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, loadServicesMethods inherited from class net.officefloor.frame.impl.construct.source.SourcePropertiesImpl
addProperty, getProperties, getProperty, getProperty, getPropertyNamesMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface net.officefloor.frame.api.source.SourceContext
getClassLoader, getClock, getLogger, getName, getOptionalResource, getProfiles, getResource, isLoadingType, loadClass, loadOptionalClass, loadOptionalService, loadOptionalServices, loadService, loadService, loadServicesMethods inherited from interface net.officefloor.frame.api.source.SourceProperties
getProperties, getProperty, getProperty, getPropertyNames
-
Constructor Details
-
ExecutiveContextImpl
public ExecutiveContextImpl(boolean isLoadingType, String teamName, boolean isRequestNoTeamOversight, int teamSize, TeamSource teamSource, Executive executive, ThreadFactoryManufacturer threadFactoryManufacturer, SourceProperties properties, SourceContext sourceContext) Initialise.- Parameters:
isLoadingType- Indicates if loading type.teamName- Name of theTeamto be created from theTeamSource.teamSize-Teamsize. Value of 0 or below indicates noTeamsize configured.teamSource-TeamSource.executive-Executive.threadFactoryManufacturer-ThreadFactoryManufacturer.isRequestNoTeamOversight- Whether to request noTeamoversight.properties-SourcePropertiesto initialise theTeamSource.sourceContext-SourceContext.
-
-
Method Details
-
isRequireTeamSize
public boolean isRequireTeamSize()Indicates if requiredTeamsize.- Returns:
trueif theTeamsize is required.
-
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.
-
isRequestNoTeamOversight
public boolean isRequestNoTeamOversight()Description copied from interface:ExecutiveContextIndicates if requesting no
TeamOversight.The
Executivemay ignore this request.- Specified by:
isRequestNoTeamOversightin interfaceExecutiveContext- Returns:
trueto request noTeamOversight.
-
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
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.
-
getTeamSource
Description copied from interface:ExecutiveContextObtains theTeamSourceto create theTeam.- Specified by:
getTeamSourcein interfaceExecutiveContext- Returns:
TeamSourceto create theTeam.
-
createThreadFactory
Description copied from interface:ExecutiveContextCreates a
ThreadFactoryfor theTeamname.The
Executivemay decide to create multipleTeaminstances for the actualTeam. This allows identifying whichThreadwill belong to eachTeam.- Specified by:
createThreadFactoryin interfaceExecutiveContext- Parameters:
teamName- Name of theTeam.- Returns:
ThreadFactory.
-