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.
  • Field Details

  • Constructor Details

  • Method Details

    • getService

      public T getService()
      Description copied from interface: ServiceHandle
      Gets the underlying service object
      Specified by:
      getService in interface ServiceHandle<T>
      Returns:
      May return null (if the backing ActiveDescriptor returned null)
    • getLastInjectee

      private Injectee getLastInjectee()
    • getService

      T getService(ServiceHandle<T> handle)
    • getActiveDescriptor

      public ActiveDescriptor<T> getActiveDescriptor()
      Description copied from interface: ServiceHandle
      Returns the ActiveDescriptor associated with this service handle
      Specified by:
      getActiveDescriptor in interface ServiceHandle<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 interface ServiceHandle<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 interface ServiceHandle<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 interface ServiceHandle<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 interface ServiceHandle<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 interface ServiceHandle<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()
    • toString

      public String toString()
      Overrides:
      toString in class Object