Class 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 Detail

      • 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)
      • 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()