Class JazzStatusConsumer

  • All Implemented Interfaces:
    org.codehaus.plexus.util.cli.StreamConsumer

    public class JazzStatusConsumer
    extends AbstractRepositoryConsumer
    Consume the output of the scm command for the "status" operation.

    It is normally just used to build up a list of ScmFile objects that have their ScmFileStatus set. This class has been expanded so that the Workspace, Component and Baseline are also collected and set back in the JazzScmProviderRepository. The Workspace and Component names are needed for some other commands (list, for example), so we can easily get this information here.

    As this class has expanded over time, it has become more and more of a state machine, one that needs to parse the output of the "scm status --wide" command. If there are any issues with this provider, I would suggest this is a good place to start.

    Author:
    Chris Graham
    • Field Detail

      • STATUS_CMD_WORKSPACE

        public static final String STATUS_CMD_WORKSPACE
        The "Status" command output line that contains the "Workspace" name.
        See Also:
        Constant Field Values
      • STATUS_CMD_COMPONENT

        public static final String STATUS_CMD_COMPONENT
        The "Status" command output line that contains the "Component" name.
        See Also:
        Constant Field Values
      • STATUS_CMD_BASELINE

        public static final String STATUS_CMD_BASELINE
        The "Status" command output line that contains the "Baseline" name.
        See Also:
        Constant Field Values
      • STATUS_CMD_OUTGOING

        public static final String STATUS_CMD_OUTGOING
        The "Status" command output line that contains the "Outgoing" eye catcher.
        See Also:
        Constant Field Values
      • STATUS_CMD_INCOMING

        public static final String STATUS_CMD_INCOMING
        The "Status" command output line that contains the "Incoming" eye catcher.
        See Also:
        Constant Field Values
      • STATUS_CMD_CHANGE_SETS

        public static final String STATUS_CMD_CHANGE_SETS
        The "Status" command output line that contains the line "Change sets:". This will be followed by the change set lines themselves.
        See Also:
        Constant Field Values
      • STATUS_CMD_BASELINES

        public static final String STATUS_CMD_BASELINES
        The "Status" command output line that contains the "Baselines" eye catcher.
        See Also:
        Constant Field Values
      • STATUS_CMD_ADD_FLAG

        public static final String STATUS_CMD_ADD_FLAG
        The "Status" command status flag for a resource that has been added.
        See Also:
        Constant Field Values
      • STATUS_CMD_CHANGE_FLAG

        public static final String STATUS_CMD_CHANGE_FLAG
        The "Status" command status flag for when the content or properties of a file have been modified, or the properties of a directory have changed.
        See Also:
        Constant Field Values
      • STATUS_CMD_DELETE_FLAG

        public static final String STATUS_CMD_DELETE_FLAG
        The "Status" command status flag for a resource that has been deleted.
        See Also:
        Constant Field Values
      • STATUS_CMD_MOVED_FLAG

        public static final String STATUS_CMD_MOVED_FLAG
        The "Status" command status flag for a resource that has been renamed or moved.
        See Also:
        Constant Field Values
    • Constructor Detail

      • JazzStatusConsumer

        public JazzStatusConsumer​(ScmProviderRepository repo,
                                  ScmLogger logger)
        Constructor for our "scm status" consumer.
        Parameters:
        repo - The JazzScmProviderRepository being used.
        logger - The ScmLogger to use.
    • Method Detail

      • consumeLine

        public void consumeLine​(String line)
        Process one line of output from the execution of the "scm status" command.
        Specified by:
        consumeLine in interface org.codehaus.plexus.util.cli.StreamConsumer
        Overrides:
        consumeLine in class AbstractRepositoryConsumer
        Parameters:
        line - The line of output from the external command that has been pumped to us.
        See Also:
        StreamConsumer.consumeLine(java.lang.String)
      • getChangedFiles

        public List<ScmFile> getChangedFiles()