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 }