Class AbstractCommand

  • All Implemented Interfaces:
    Command
    Direct Known Subclasses:
    Clean, Infer, Make, Mark, Publish

    public abstract class AbstractCommand
    extends Object
    implements Command
    The common superclass for Nyx commands. This class is not meant to be used in multi-threaded environments. All implementing classes must have a public constructor that accept a State and a Repository parameter.
    • Constructor Detail

      • AbstractCommand

        protected AbstractCommand​(State state,
                                  Repository repository)
        Standard constructor.
        Parameters:
        state - the state reference
        repository - the repository reference
        Throws:
        NullPointerException - if a given argument is null
    • Method Detail

      • state

        public final State state()
        Returns the state object.
        Specified by:
        state in interface Command
        Returns:
        the state object that was passed in the constructor (never null, even when or after Command.run() returns null).
      • repository

        public final Repository repository()
        Returns the repository object.
        Returns:
        the repository object.
      • getLatestCommit

        protected String getLatestCommit()
                                  throws GitException
        Returns the SHA-1 identifier of the last commit in the current branch.
        Returns:
        the SHA-1 identifier of the last commit in the current branch or code if the repository has no commits yet.
        Throws:
        GitException - in case of unexpected issues when accessing the Git repository.
        See Also:
        repository()
      • isRepositoryClean

        protected boolean isRepositoryClean()
                                     throws GitException
        Returns true if the repository is in a clean state (no uncommitted changes).
        Returns:
        true if the repository is in a clean state (no uncommitted changes).
        Throws:
        GitException - in case of unexpected issues when accessing the Git repository.
        See Also:
        repository()
      • isInternalAttributeUpToDate

        protected boolean isInternalAttributeUpToDate​(String attributeName,
                                                      Object expectedValue)
        Returns true if the internal attributes map contains an attribute with the given name and its value equals the given expected value. The comparison is always performed using the Object.toString() method of the expected value.
        Parameters:
        attributeName - the name of the attribute to check. It can't be null
        expectedValue - the expected value of the attribute. It may be null
        Returns:
        true if the internal attributes map contains an attribute with the given name and its value equals the given expected value.
      • storeInternalAttribute

        protected void storeInternalAttribute​(String attributeName,
                                              Object attributeValue)
        Stores the attribute with the given name to the internal attributes map. The stored value is always performed the Object.toString() of the given value.
        Parameters:
        attributeName - the name of the attribute to store. It can't be null
        attributeValue - the value of the attribute. It may be null