T - the type of service being builtclass ServiceBuilderImpl<T> extends java.lang.Object implements ServiceBuilder<T>
ServiceBuilder implementation.| Modifier and Type | Class and Description |
|---|---|
(package private) static class |
ServiceBuilderImpl.Dependency |
ServiceBuilder.DependencyType| Modifier and Type | Field and Description |
|---|---|
private java.util.Set<ServiceName> |
aliases |
private java.util.Map<ServiceName,ServiceBuilderImpl.Dependency> |
dependencies |
private ServiceController.Mode |
initialMode |
private boolean |
installed |
private java.util.Set<ServiceListener<? super T>> |
listeners |
private IdentityHashSet<StabilityMonitor> |
monitors |
private java.util.List<Injector<? super T>> |
outInjections |
private ServiceControllerImpl<?> |
parent |
private ServiceName |
serviceName |
private ServiceTargetImpl |
serviceTarget |
private Value<? extends Service<T>> |
serviceValue |
private java.util.List<ValueInjection<?>> |
valueInjections |
| Constructor and Description |
|---|
ServiceBuilderImpl(ServiceTargetImpl serviceTarget,
Value<? extends Service<T>> serviceValue,
ServiceName serviceName,
ServiceControllerImpl<?> parent) |
| Modifier and Type | Method and Description |
|---|---|
ServiceBuilder<T> |
addAliases(ServiceName... aliases)
Add aliases for this service.
|
ServiceBuilder<T> |
addDependencies(java.lang.Iterable<ServiceName> newDependencies)
Add multiple, non-injected dependencies.
|
ServiceBuilder<T> |
addDependencies(ServiceBuilder.DependencyType dependencyType,
java.lang.Iterable<ServiceName> newDependencies)
Add multiple, non-injected dependencies.
|
ServiceBuilder<T> |
addDependencies(ServiceBuilder.DependencyType dependencyType,
ServiceName... newDependencies)
Add multiple, non-injected dependencies.
|
ServiceBuilder<T> |
addDependencies(ServiceName... newDependencies)
Add multiple, non-injected dependencies.
|
(package private) ServiceBuilder<T> |
addDependenciesNoCheck(java.lang.Iterable<ServiceName> newDependencies) |
(package private) ServiceBuilder<T> |
addDependenciesNoCheck(java.lang.Iterable<ServiceName> newDependencies,
ServiceBuilder.DependencyType dependencyType) |
ServiceBuilder<T> |
addDependency(ServiceBuilder.DependencyType dependencyType,
ServiceName dependency)
Add a dependency.
|
<I> ServiceBuilder<T> |
addDependency(ServiceBuilder.DependencyType dependencyType,
ServiceName dependency,
java.lang.Class<I> type,
Injector<I> target)
Add a service dependency.
|
ServiceBuilder<T> |
addDependency(ServiceBuilder.DependencyType dependencyType,
ServiceName dependency,
Injector<java.lang.Object> target)
Add a service dependency.
|
ServiceBuilder<T> |
addDependency(ServiceName dependency)
Add a dependency.
|
<I> ServiceBuilder<T> |
addDependency(ServiceName dependency,
java.lang.Class<I> type,
Injector<I> target)
Add a service dependency.
|
ServiceBuilder<T> |
addDependency(ServiceName dependency,
Injector<java.lang.Object> target)
Add a service dependency.
|
<I> ServiceBuilder<T> |
addInjection(Injector<? super I> target,
I value)
Add an injection.
|
ServiceBuilder<T> |
addInjection(Injector<? super T> target)
Add an injection of this service into another target.
|
<I> ServiceBuilder<T> |
addInjectionValue(Injector<? super I> target,
Value<I> value)
Add an injection value.
|
ServiceBuilderImpl<T> |
addListener(java.util.Collection<? extends ServiceListener<? super T>> serviceListeners)
Add service listeners that will be added to this service.
|
ServiceBuilderImpl<T> |
addListener(ServiceListener<? super T>... serviceListeners)
Add service listeners that will be added to this service.
|
ServiceBuilderImpl<T> |
addListener(ServiceListener<? super T> listener)
Add a service listener that will be added to this service.
|
(package private) ServiceBuilderImpl<T> |
addListenerNoCheck(java.util.Set<? extends ServiceListener<? super T>> serviceListeners) |
ServiceBuilder<T> |
addMonitor(StabilityMonitor monitor)
Add a service stability monitor that will be added to this service.
|
(package private) ServiceBuilderImpl<T> |
addMonitorNoCheck(StabilityMonitor monitor) |
ServiceBuilder<T> |
addMonitors(StabilityMonitor... monitors)
Add service stability monitors that will be added to this service.
|
(package private) ServiceBuilderImpl<T> |
addMonitorsNoCheck(java.util.Collection<? extends StabilityMonitor> monitors) |
private void |
checkAlreadyInstalled() |
private ServiceBuilderImpl.Dependency |
doAddDependency(ServiceName name,
ServiceBuilder.DependencyType type) |
(package private) ServiceName[] |
getAliases() |
(package private) java.util.Map<ServiceName,ServiceBuilderImpl.Dependency> |
getDependencies() |
(package private) ServiceController.Mode |
getInitialMode() |
(package private) java.util.Set<ServiceListener<? super T>> |
getListeners() |
(package private) java.util.Set<StabilityMonitor> |
getMonitors() |
(package private) ServiceName |
getName() |
(package private) java.util.List<Injector<? super T>> |
getOutInjections() |
(package private) ServiceControllerImpl<?> |
getParent() |
(package private) Value<? extends Service<T>> |
getServiceValue() |
(package private) ServiceTarget |
getTarget() |
(package private) java.util.List<ValueInjection<?>> |
getValueInjections() |
ServiceController<T> |
install()
Install the defined service into the container.
|
ServiceBuilderImpl<T> |
setInitialMode(ServiceController.Mode mode)
Set the initial mode.
|
private final ServiceControllerImpl<?> parent
private final ServiceTargetImpl serviceTarget
private final ServiceName serviceName
private ServiceController.Mode initialMode
private final java.util.Set<ServiceName> aliases
private final IdentityHashSet<StabilityMonitor> monitors
private final java.util.Map<ServiceName,ServiceBuilderImpl.Dependency> dependencies
private final java.util.Set<ServiceListener<? super T>> listeners
private final java.util.List<ValueInjection<?>> valueInjections
private boolean installed
ServiceBuilderImpl(ServiceTargetImpl serviceTarget, Value<? extends Service<T>> serviceValue, ServiceName serviceName, ServiceControllerImpl<?> parent)
public ServiceBuilder<T> addAliases(ServiceName... aliases)
ServiceBuilderaddAliases in interface ServiceBuilder<T>aliases - the service names to use as aliasespublic ServiceBuilderImpl<T> setInitialMode(ServiceController.Mode mode)
ServiceBuildersetInitialMode in interface ServiceBuilder<T>mode - the initial modepublic ServiceBuilder<T> addDependencies(ServiceName... newDependencies)
ServiceBuilderaddDependencies in interface ServiceBuilder<T>newDependencies - the service names to depend onpublic ServiceBuilder<T> addDependencies(ServiceBuilder.DependencyType dependencyType, ServiceName... newDependencies)
ServiceBuilderaddDependencies in interface ServiceBuilder<T>dependencyType - the dependency type; must not be nullnewDependencies - the service names to depend onpublic ServiceBuilder<T> addDependencies(java.lang.Iterable<ServiceName> newDependencies)
ServiceBuilderaddDependencies in interface ServiceBuilder<T>newDependencies - the service names to depend onServiceBuilder<T> addDependenciesNoCheck(java.lang.Iterable<ServiceName> newDependencies)
public ServiceBuilder<T> addDependencies(ServiceBuilder.DependencyType dependencyType, java.lang.Iterable<ServiceName> newDependencies)
ServiceBuilderaddDependencies in interface ServiceBuilder<T>dependencyType - the dependency type; must not be nullnewDependencies - the service names to depend onServiceBuilder<T> addDependenciesNoCheck(java.lang.Iterable<ServiceName> newDependencies, ServiceBuilder.DependencyType dependencyType)
public ServiceBuilder<T> addDependency(ServiceName dependency)
ServiceBuilderaddDependency in interface ServiceBuilder<T>dependency - the name of the dependencypublic ServiceBuilder<T> addDependency(ServiceBuilder.DependencyType dependencyType, ServiceName dependency)
ServiceBuilderaddDependency in interface ServiceBuilder<T>dependencyType - the dependency type; must not be nulldependency - the name of the dependencypublic ServiceBuilder<T> addDependency(ServiceName dependency, Injector<java.lang.Object> target)
ServiceBuilderaddDependency in interface ServiceBuilder<T>dependency - the name of the dependencytarget - the injector into which the dependency should be storedpublic ServiceBuilder<T> addDependency(ServiceBuilder.DependencyType dependencyType, ServiceName dependency, Injector<java.lang.Object> target)
ServiceBuilderaddDependency in interface ServiceBuilder<T>dependencyType - the dependency type; must not be nulldependency - the name of the dependencytarget - the injector into which the dependency should be storedpublic <I> ServiceBuilder<T> addDependency(ServiceName dependency, java.lang.Class<I> type, Injector<I> target)
ServiceBuilderaddDependency in interface ServiceBuilder<T>I - the type of the value of the dependencydependency - the name of the dependencytype - the class of the value of the dependencytarget - the injector into which the dependency should be storedpublic <I> ServiceBuilder<T> addDependency(ServiceBuilder.DependencyType dependencyType, ServiceName dependency, java.lang.Class<I> type, Injector<I> target)
ServiceBuilderaddDependency in interface ServiceBuilder<T>I - the type of the value of the dependencydependencyType - the dependency type; must not be nulldependency - the name of the dependencytype - the class of the value of the dependencytarget - the injector into which the dependency should be storedprivate ServiceBuilderImpl.Dependency doAddDependency(ServiceName name, ServiceBuilder.DependencyType type)
public <I> ServiceBuilder<T> addInjection(Injector<? super I> target, I value)
ServiceBuilderaddInjection in interface ServiceBuilder<T>I - the injection typetarget - the injection targetvalue - the injection valuepublic <I> ServiceBuilder<T> addInjectionValue(Injector<? super I> target, Value<I> value)
ServiceBuilderaddInjectionValue in interface ServiceBuilder<T>I - the injection typetarget - the injection targetvalue - the injection valuepublic ServiceBuilder<T> addInjection(Injector<? super T> target)
ServiceBuilderDifferently from other injection types, failures to perform an outward injection will not result in a failure to start the service.
addInjection in interface ServiceBuilder<T>target - the injector targetpublic ServiceBuilder<T> addMonitor(StabilityMonitor monitor)
ServiceBuilderaddMonitor in interface ServiceBuilder<T>monitor - the stability monitor to add to the servicepublic ServiceBuilder<T> addMonitors(StabilityMonitor... monitors)
ServiceBuilderaddMonitors in interface ServiceBuilder<T>monitors - a list of stability monitors to add to the servicepublic ServiceBuilderImpl<T> addListener(ServiceListener<? super T> listener)
ServiceBuilderaddListener in interface ServiceBuilder<T>listener - the listener to add to the servicepublic ServiceBuilderImpl<T> addListener(ServiceListener<? super T>... serviceListeners)
ServiceBuilderaddListener in interface ServiceBuilder<T>serviceListeners - a list of listeners to add to the servicepublic ServiceBuilderImpl<T> addListener(java.util.Collection<? extends ServiceListener<? super T>> serviceListeners)
ServiceBuilderaddListener in interface ServiceBuilder<T>serviceListeners - a collection of listeners to add to the serviceServiceBuilderImpl<T> addMonitorNoCheck(StabilityMonitor monitor)
ServiceBuilderImpl<T> addListenerNoCheck(java.util.Set<? extends ServiceListener<? super T>> serviceListeners)
ServiceBuilderImpl<T> addMonitorsNoCheck(java.util.Collection<? extends StabilityMonitor> monitors)
private void checkAlreadyInstalled()
public ServiceController<T> install() throws ServiceRegistryException
ServiceBuilderinstall in interface ServiceBuilder<T>ServiceRegistryException - if installation failsServiceName getName()
ServiceName[] getAliases()
java.util.Map<ServiceName,ServiceBuilderImpl.Dependency> getDependencies()
java.util.Set<StabilityMonitor> getMonitors()
java.util.Set<ServiceListener<? super T>> getListeners()
java.util.List<ValueInjection<?>> getValueInjections()
ServiceController.Mode getInitialMode()
ServiceTarget getTarget()
ServiceControllerImpl<?> getParent()