View Javadoc

1   package org.apache.maven.surefire;
2   
3   import org.apache.maven.surefire.report.ForkingReport;
4   import org.codehaus.plexus.util.cli.StreamConsumer;
5   
6   import java.io.PrintWriter;
7   import java.io.Writer;
8   
9   /***
10   * @author Jason van Zyl
11   * @version $Revision: 382191 $
12   */
13  public class ForkingWriterStreamConsumer
14      implements StreamConsumer
15  {
16      private PrintWriter printWriter;
17  
18      private int standardPrefixLength;
19  
20      private int headingPrefixLength;
21  
22      boolean showHeading;
23  
24      public ForkingWriterStreamConsumer( Writer writer, boolean showHeading )
25      {
26          this.showHeading = showHeading;
27  
28          printWriter = new PrintWriter( writer );
29  
30          standardPrefixLength = ForkingReport.FORKING_PREFIX_STANDARD.length();
31  
32          headingPrefixLength = ForkingReport.FORKING_PREFIX_HEADING.length();
33      }
34  
35      public void consumeLine( String line )
36      {
37          if ( line.startsWith( ForkingReport.FORKING_PREFIX_HEADING ) )
38          {
39              if ( showHeading )
40              {
41                  printWriter.println( line.substring( headingPrefixLength ) );
42  
43                  printWriter.flush();
44              }
45          }
46          else if ( line.startsWith( ForkingReport.FORKING_PREFIX_STANDARD ) )
47          {
48              printWriter.println( line.substring( standardPrefixLength ) );
49  
50              printWriter.flush();
51          }
52          else
53          {
54              printWriter.println( line );
55  
56              printWriter.flush();
57          }
58      }
59  }