Class LocalCommand


  • public abstract class LocalCommand
    extends AdHocCommand
    Represents a command that can be executed locally from a remote location. This class must be extended to implement an specific ad-hoc command. This class provides some useful tools:
    • Node
    • Name
    • Session ID
    • Current Stage
    • Available actions
    • Default action
    To implement a new command extend this class and implement all the abstract methods. When implementing the actions remember that they could be invoked several times, and that you must use the current stage number to know what to do.
    • Method Detail

      • setSessionID

        public void setSessionID​(java.lang.String sessionID)
        The sessionID is an unique identifier of an execution request. This is automatically handled and should not be called.
        Parameters:
        sessionID - the unique session id of this execution
      • getSessionID

        public java.lang.String getSessionID()
        Returns the session ID of this execution.
        Returns:
        the unique session id of this execution
      • setOwnerJID

        public void setOwnerJID​(Jid ownerJID)
        Sets the JID of the command host. This is automatically handled and should not be called.
        Parameters:
        ownerJID - the JID of the owner.
      • getOwnerJID

        public Jid getOwnerJID()
        Description copied from class: AdHocCommand
        Returns the full JID of the owner of this command. This JID is the "to" of a execution request.
        Specified by:
        getOwnerJID in class AdHocCommand
        Returns:
        the owner JID.
      • getCreationDate

        public long getCreationDate()
        Returns the date the command was created.
        Returns:
        the date the command was created.
      • isLastStage

        public abstract boolean isLastStage()
        Returns true if the current stage is the last one. If it is then the execution of some action will complete the execution of the command. Commands that don't have multiple stages can always return true.
        Returns:
        true if the command is in the last stage.
      • hasPermission

        public abstract boolean hasPermission​(Jid jid)
        Returns true if the specified requester has permission to execute all the stages of this action. This is checked when the first request is received, if the permission is grant then the requester will be able to execute all the stages of the command. It is not checked again during the execution.
        Parameters:
        jid - the JID to check permissions on.
        Returns:
        true if the user has permission to execute this action.
      • getCurrentStage

        public int getCurrentStage()
        Returns the currently executing stage number. The first stage number is 0. During the execution of the first action this method will answer 0.
        Returns:
        the current stage number.