Class RuntimeCapability<T>
- java.lang.Object
-
- org.jboss.as.controller.capability.RuntimeCapability<T>
-
- Type Parameters:
T- the type of the runtime API object exposed by the capability
- All Implemented Interfaces:
Capability
public class RuntimeCapability<T> extends Object implements Capability
A capability exposed in a running WildFly process.- Author:
- Brian Stansberry (c) 2014 Red Hat Inc.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classRuntimeCapability.Builder<T>Builder for aRuntimeCapability.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static StringbuildDynamicCapabilityName(String baseName, String dynamicNameElement)static StringbuildDynamicCapabilityName(String baseName, String... dynamicNameElement)Constructs a full capability name from a static base name and a dynamic element.booleanequals(Object o)RuntimeCapability<T>fromBaseCapability(String dynamicElement)RuntimeCapability<T>fromBaseCapability(String... dynamicElement)Creates a fully named capability from adynamically namedbase capability.RuntimeCapability<T>fromBaseCapability(PathAddress path)Creates a fully named capability from adynamically namedbase capability.org.jboss.msc.service.ServiceNamegetCapabilityServiceName()Gets the name of the service provided by this capability, if there is one.org.jboss.msc.service.ServiceNamegetCapabilityServiceName(Class<?> serviceValueType)Gets the name of service provided by this capability.org.jboss.msc.service.ServiceNamegetCapabilityServiceName(Class<?> serviceValueType, String... dynamicNameElements)org.jboss.msc.service.ServiceNamegetCapabilityServiceName(String... dynamicNameElements)Gets the name of the service provided by this capability, if there is one.org.jboss.msc.service.ServiceNamegetCapabilityServiceName(String dynamicNameElement, Class<?> serviceValueType)Gets the name of service provided by this capability.org.jboss.msc.service.ServiceNamegetCapabilityServiceName(PathAddress address)Gets the name of the service provided by this capability, if there is one.org.jboss.msc.service.ServiceNamegetCapabilityServiceName(PathAddress address, Class<?> serviceValueType)Gets the name of service provided by this capability.Class<?>getCapabilityServiceValueType()Gets the valid type to pass togetCapabilityServiceName(Class).StringgetDynamicName(String dynamicNameElement)Gets the full name of a capability, including a dynamic elementStringgetDynamicName(PathAddress address)StringgetName()Gets the basic name of the capability.Set<String>getRequirements()Gets the names of other capabilities required by this capability.TgetRuntimeAPI()Object encapsulating the API exposed by this capability to other capabilities that require it, if it does expose such an API.inthashCode()booleanisAllowMultipleRegistrations()Gets whether this capability can be registered at more than one point within the same overall scope.booleanisDynamicallyNamed()Gets whether this capability is a dynamically named one, whose runtime variants will have a dynamic element added to the base name provided byCapability.getName().StringtoString()
-
-
-
Method Detail
-
buildDynamicCapabilityName
public static String buildDynamicCapabilityName(String baseName, String dynamicNameElement)
-
fromBaseCapability
public RuntimeCapability<T> fromBaseCapability(String dynamicElement)
-
buildDynamicCapabilityName
public static String buildDynamicCapabilityName(String baseName, String... dynamicNameElement)
Constructs a full capability name from a static base name and a dynamic element.- Parameters:
baseName- the base name. Cannot benulldynamicNameElement- the dynamic portion of the name. Cannot benull- Returns:
- the full capability name. Will not return
null
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName()
Gets the name of the service provided by this capability, if there is one.- Returns:
- the name of the service. Will not be
null - Throws:
IllegalArgumentException- if the capability does not provide a service
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName(Class<?> serviceValueType)
Gets the name of service provided by this capability.- Parameters:
serviceValueType- the expected type of the service's value. Only used to provide validate that the service value type provided by the capability matches the caller's expectation. May benullin which case no validation is performed- Returns:
- the name of the service. Will not be
null - Throws:
IllegalArgumentException- if the capability does not provide a service or if its value type is not assignable toserviceValueType
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName(String... dynamicNameElements)
Gets the name of the service provided by this capability, if there is one. Only usable withdynamically namedcapabilities.- Parameters:
dynamicNameElements- the dynamic portion of the capability name. Cannot benull- Returns:
- the name of the service. Will not be
null - Throws:
IllegalArgumentException- if the capability does not provide a serviceAssertionError- ifisDynamicallyNamed()does not returntrue
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName(PathAddress address)
Gets the name of the service provided by this capability, if there is one. Only usable withdynamically namedcapabilities.- Parameters:
address- Path address for which service name is calculated from Cannot benull- Returns:
- the name of the service. Will not be
null - Throws:
IllegalArgumentException- if the capability does not provide a serviceAssertionError- ifisDynamicallyNamed()does not returntrue
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName(String dynamicNameElement, Class<?> serviceValueType)
Gets the name of service provided by this capability.- Parameters:
dynamicNameElement- the dynamic portion of the capability name. Cannot benullserviceValueType- the expected type of the service's value. Only used to provide validate that the service value type provided by the capability matches the caller's expectation. May benullin which case no validation is performed- Returns:
- the name of the service. Will not be
null - Throws:
IllegalArgumentException- if the capability does not provide a service or if its value type is not assignable toserviceValueTypeIllegalStateException- ifisDynamicallyNamed()does not returntrue
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName(Class<?> serviceValueType, String... dynamicNameElements)
-
getCapabilityServiceName
public org.jboss.msc.service.ServiceName getCapabilityServiceName(PathAddress address, Class<?> serviceValueType)
Gets the name of service provided by this capability.- Parameters:
address- the path from which dynamic portion of the capability name is calculated from. Cannot benullserviceValueType- the expected type of the service's value. Only used to provide validate that the service value type provided by the capability matches the caller's expectation. May benullin which case no validation is performed- Returns:
- the name of the service. Will not be
null - Throws:
IllegalArgumentException- if the capability does not provide a service or if its value type is not assignable toserviceValueTypeIllegalStateException- ifisDynamicallyNamed()does not returntrue
-
getCapabilityServiceValueType
public Class<?> getCapabilityServiceValueType()
Gets the valid type to pass togetCapabilityServiceName(Class).- Returns:
- the valid type. May be
nullif this capability does not provide a service
-
getRuntimeAPI
public T getRuntimeAPI()
Object encapsulating the API exposed by this capability to other capabilities that require it, if it does expose such an API.- Returns:
- the API object, or
nullif the capability exposes no API to other capabilities
-
isAllowMultipleRegistrations
public boolean isAllowMultipleRegistrations()
Gets whether this capability can be registered at more than one point within the same overall scope.- Returns:
trueif the capability can legally be registered in more than one location in the same scope;falseif an attempt to do this should result in an exception
-
fromBaseCapability
public RuntimeCapability<T> fromBaseCapability(String... dynamicElement)
Creates a fully named capability from adynamically namedbase capability. Capability providers should use this method to generate fully named capabilities in logic that handles dynamically named resources.- Parameters:
dynamicElement- the dynamic portion of the full capability name. Cannot benullor empty- Returns:
- the fully named capability.
- Throws:
AssertionError- ifisDynamicallyNamed()returnsfalse
-
fromBaseCapability
public RuntimeCapability<T> fromBaseCapability(PathAddress path)
Creates a fully named capability from adynamically namedbase capability. Capability providers should use this method to generate fully named capabilities in logic that handles dynamically named resources.- Parameters:
path- the dynamic portion of the full capability name. Cannot benullor empty- Returns:
- the fully named capability.
- Throws:
AssertionError- ifisDynamicallyNamed()returnsfalse
-
getName
public String getName()
Description copied from interface:CapabilityGets the basic name of the capability. IfCapability.isDynamicallyNamed()returnstruethis will be the basic name of the capability, not including any dynamic portions.- Specified by:
getNamein interfaceCapability- Returns:
- the name. Will not be
null - See Also:
Capability.getDynamicName(String)
-
getRequirements
public Set<String> getRequirements()
Description copied from interface:CapabilityGets the names of other capabilities required by this capability. These are static requirements.- Specified by:
getRequirementsin interfaceCapability- Returns:
- the capability names. Will not be
nullbut may be empty.
-
isDynamicallyNamed
public boolean isDynamicallyNamed()
Description copied from interface:CapabilityGets whether this capability is a dynamically named one, whose runtime variants will have a dynamic element added to the base name provided byCapability.getName().- Specified by:
isDynamicallyNamedin interfaceCapability- Returns:
trueif this capability is dynamically named
-
getDynamicName
public String getDynamicName(String dynamicNameElement)
Description copied from interface:CapabilityGets the full name of a capability, including a dynamic element- Specified by:
getDynamicNamein interfaceCapability- Parameters:
dynamicNameElement- the dynamic portion of the name. Cannot benull- Returns:
- the full capability name
-
getDynamicName
public String getDynamicName(PathAddress address)
- Specified by:
getDynamicNamein interfaceCapability
-
-