Package org.jvnet.hk2.internal
Class ServiceHandleImpl<T>
- java.lang.Object
-
- org.jvnet.hk2.internal.ServiceHandleImpl<T>
-
- Type Parameters:
T
- The type of service to create
- All Implemented Interfaces:
ServiceHandle<T>
public class ServiceHandleImpl<T> extends Object implements ServiceHandle<T>
This handle does the underlying work of getting the service. Only at the time that the getService call is made is the service gotten from the context. Once a service has been gotten, it is not looked up again.- Author:
- jwells
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addSubHandle(ServiceHandleImpl<?> subHandle)
Add a sub handle to this for proper destructionvoid
destroy()
Will destroy this object and all PerLookup instances created because of this serviceActiveDescriptor<T>
getActiveDescriptor()
Returns the ActiveDescriptor associated with this service handleInjectee
getOriginalRequest()
T
getService()
Gets the underlying service objectObject
getServiceData()
Service data can be set on a service handle.List<ServiceHandle<?>>
getSubHandles()
Returns a list of subordinate subhandles to this root handleboolean
isActive()
This returns true if the underlying service has already been createdvoid
popInjectee()
void
pushInjectee(Injectee push)
void
setServiceData(Object serviceData)
Service data can be set on a service handle.String
toString()
-
-
-
Method Detail
-
getService
public T getService()
Description copied from interface:ServiceHandle
Gets the underlying service object- Specified by:
getService
in interfaceServiceHandle<T>
- Returns:
- May return null (if the backing ActiveDescriptor returned null)
-
getActiveDescriptor
public ActiveDescriptor<T> getActiveDescriptor()
Description copied from interface:ServiceHandle
Returns the ActiveDescriptor associated with this service handle- Specified by:
getActiveDescriptor
in interfaceServiceHandle<T>
- Returns:
- The ActiveDescriptor associated with this handle. Can return null in cases where the Handle describes a service not associated with an hk2 service, such as a constant service
-
isActive
public boolean isActive()
Description copied from interface:ServiceHandle
This returns true if the underlying service has already been created- Specified by:
isActive
in interfaceServiceHandle<T>
- Returns:
- true if the underlying service has been created
-
destroy
public void destroy()
Description copied from interface:ServiceHandle
Will destroy this object and all PerLookup instances created because of this service- Specified by:
destroy
in interfaceServiceHandle<T>
-
setServiceData
public void setServiceData(Object serviceData)
Description copied from interface:ServiceHandle
Service data can be set on a service handle. If the service data is set prior to the services associated Context has created an instance then this service data can be used to influence the context's creation of the service. The service data is associated with a handle, not with the service itself- Specified by:
setServiceData
in interfaceServiceHandle<T>
- Parameters:
serviceData
- Sets the serviceData for the handle (may be null)
-
getServiceData
public Object getServiceData()
Description copied from interface:ServiceHandle
Service data can be set on a service handle. If the service data is set prior to the services associated Context has created an instance then this service data can be used to influence the context's creation of the service. The service data is associated with a handle, not with the service itself- Specified by:
getServiceData
in interfaceServiceHandle<T>
- Returns:
- The service data for this service handle (may return null)
-
getSubHandles
public List<ServiceHandle<?>> getSubHandles()
Description copied from interface:ServiceHandle
Returns a list of subordinate subhandles to this root handle- Specified by:
getSubHandles
in interfaceServiceHandle<T>
- Returns:
- A non-null but possibly empty list of subhandles subordinate to this root
-
pushInjectee
public void pushInjectee(Injectee push)
-
popInjectee
public void popInjectee()
-
addSubHandle
public void addSubHandle(ServiceHandleImpl<?> subHandle)
Add a sub handle to this for proper destruction- Parameters:
subHandle
- A handle to add for proper destruction
-
getOriginalRequest
public Injectee getOriginalRequest()
-
-