Class PerforceDescribeConsumer

java.lang.Object
org.apache.maven.scm.util.AbstractConsumer
org.apache.maven.scm.provider.perforce.command.changelog.PerforceDescribeConsumer
All Implemented Interfaces:
org.codehaus.plexus.util.cli.StreamConsumer

public class PerforceDescribeConsumer extends AbstractConsumer
Parse the tagged output from "p4 describe -s [change] [change] [...]".
  • Field Details

    • entries

      private List<ChangeSet> entries
    • GET_REVISION

      private static final int GET_REVISION
      State machine constant: expecting revision
      See Also:
    • GET_COMMENT_BEGIN

      private static final int GET_COMMENT_BEGIN
      State machine constant: eat the first blank line
      See Also:
    • GET_COMMENT

      private static final int GET_COMMENT
      State machine constant: expecting comments
      See Also:
    • GET_AFFECTED_FILES

      private static final int GET_AFFECTED_FILES
      State machine constant: expecting "Affected files"
      See Also:
    • GET_FILES_BEGIN

      private static final int GET_FILES_BEGIN
      State machine constant: expecting blank line
      See Also:
    • GET_FILE

      private static final int GET_FILE
      State machine constant: expecting files
      See Also:
    • status

      private int status
      Current status of the parser
    • currentRevision

      private String currentRevision
      The current log entry being processed by the parser
    • currentChange

      private ChangeSet currentChange
      The current log entry being processed by the parser
    • currentFile

      private String currentFile
      the current file being processed by the parser
    • repoPath

      private String repoPath
      The location of files within the Perforce depot that we are processing e.g. //depot/projects/foo/bar
    • userDatePattern

      private String userDatePattern
    • REVISION_PATTERN

      private static final Pattern REVISION_PATTERN
      The regular expression used to match header lines
    • COMMENT_DELIMITER

      private static final String COMMENT_DELIMITER
      The comment section ends with a blank line
      See Also:
    • CHANGELIST_DELIMITER

      private static final String CHANGELIST_DELIMITER
      The changelist ends with a blank line
      See Also:
    • FILE_PATTERN

      private static final Pattern FILE_PATTERN
      The regular expression used to match file paths
  • Constructor Details

    • PerforceDescribeConsumer

      public PerforceDescribeConsumer(String repoPath, String userDatePattern, ScmLogger logger)
  • Method Details

    • getModifications

      public List<ChangeSet> getModifications() throws ScmException
      Throws:
      ScmException
    • consumeLine

      public void consumeLine(String line)
    • addEntry

      private void addEntry(ChangeSet entry, ChangeFile file)
      Add a change log entry to the list (if it's not already there) with the given file.
      Parameters:
      entry - a ChangeSet to be added to the list if another with the same key (p4 change number) doesn't exist already.
      file - a ChangeFile to be added to the entry
    • processGetFile

      private void processGetFile(String line)
      Each file matches the fileRegexp.
      Parameters:
      line - A line of text from the Perforce log output
    • processGetRevision

      private void processGetRevision(String line)
      Most of the relevant info is on the revision line matching the 'pattern' string.
      Parameters:
      line - A line of text from the perforce log output
    • processGetComment

      private void processGetComment(String line)
      Process the current input line in the GET_COMMENT state. This state gathers all of the comments that are part of a log entry.
      Parameters:
      line - a line of text from the perforce log output
    • processGetAffectedFiles

      private void processGetAffectedFiles(String line)
      Process the current input line in the GET_COMMENT state. This state gathers all of the comments that are part of a log entry.
      Parameters:
      line - a line of text from the perforce log output