Class WorkManager.WorkHolder

  • All Implemented Interfaces:
    commonj.work.RemoteWorkItem, commonj.work.WorkItem, Comparable
    Enclosing class:
    WorkManager

    protected class WorkManager.WorkHolder
    extends Base
    implements commonj.work.RemoteWorkItem
    A holder for a Work object that serves as a communication intermediary between a client and a [remote] service.
    • Field Detail

      • m_lWorkId

        protected long m_lWorkId
        The corresponding work id.
      • m_listener

        protected commonj.work.WorkListener m_listener
        A work listener associated with the corresponding Work.
      • m_service

        protected InvocationService m_service
        The underlying Invocation service.
      • m_member

        protected Member m_member
        The server Member that is to run the Work.
      • m_listWaits

        protected List m_listWaits
        A list of collections waiting for this Work to complete. Usually this list contains no more than one item.
    • Constructor Detail

      • WorkHolder

        public WorkHolder​(long lWorkId,
                          commonj.work.WorkListener listener,
                          InvocationService service,
                          Member member)
        Construct a WorkHolder for a Work with a given work id that is scheduled to be executed on a specified service.
        Parameters:
        lWorkId - the Work id
        listener - the WorkListener
        service - the InvocationService to use
        member - the target Member
    • Method Detail

      • getStatus

        public int getStatus()
        Return the current status of dispatching the Work. See WorkEvent for the values.
        Specified by:
        getStatus in interface commonj.work.WorkItem
        Returns:
        the work status
        See Also:
        WorkEvent
      • getResult

        public commonj.work.Work getResult()
                                    throws commonj.work.WorkException
        Return the Work once it has completed. If the Work threw an exception during run then the exception is re-thrown here.
        Specified by:
        getResult in interface commonj.work.WorkItem
        Returns:
        the completed Work or null if the Work is not yet complete.
        Throws:
        commonj.work.WorkException - if an exception is thrown in the Work
      • getPinnedWorkManager

        public commonj.work.WorkManager getPinnedWorkManager()
        Return a pinned WorkManager which represents the JVM that was used to execute this Work.
        Specified by:
        getPinnedWorkManager in interface commonj.work.RemoteWorkItem
        Returns:
        the WorkManager associated with the JVM that was used to execute this RemoteWorkItem
      • release

        public void release()
        Calls the remote Work object's Work.release() method.
        Specified by:
        release in interface commonj.work.RemoteWorkItem
      • compareTo

        public int compareTo​(Object o)
        Compare this WorkItem with the specified object for order.
        Specified by:
        compareTo in interface Comparable
      • getWorkId

        public long getWorkId()
        Return the work id.
        Returns:
        the work id.
      • getWorkStatus

        public WorkManager.WorkStatus getWorkStatus()
        Return the WorkStatus object.
        Returns:
        the WorkStatus object
      • getService

        public InvocationService getService()
        Return the InvocationService used to execute the corresponding Work.
        Returns:
        the InvocationService reference
      • getTargetMember

        public Member getTargetMember()
        Return the Member that the corresponding Work is to be executed at.
        Returns:
        the target Member
      • getListener

        public commonj.work.WorkListener getListener()
        Return the associated WorkListener.
        Returns:
        the listener object
      • setWorkStatus

        protected void setWorkStatus​(WorkManager.WorkStatus status)
        Update the WorkStatus.
        Parameters:
        status - the WorkStatus object to update
      • addWait

        public void addWait​(Collection collWait)
        Add a collection to a wait list.
        Parameters:
        collWait - a collection that waits for this Work
      • removeWait

        public void removeWait​(Collection collWait)
        Remove a collection from a wait list. The collection must have been added using the addWait(java.util.Collection) call.
        Parameters:
        collWait - a collection that waits for this Work
      • getWaits

        public Collection[] getWaits()
        Assemble an array of collection that wait for this Work.
        Returns:
        an array of collections that wait for this Work
      • hashCode

        public int hashCode()
        Return a hash code value for this WorkHolder.
        Overrides:
        hashCode in class Object
      • equals

        public boolean equals​(Object o)
        Compare this WorkItem with the specified object for equality.
        Overrides:
        equals in class Object
      • toString

        public String toString()
        Return a string representation of the WorkHolder object.
        Overrides:
        toString in class Object