@Override
  public void process(final Resource resource, final Reader reader, final Writer writer)
    throws IOException {
    try {
      final String content = IOUtils.toString(reader);
      final Matcher originalMatcher = PATTERN_COPYRIGHT.matcher(content);
      final StringBuffer copyrightBuffer = new StringBuffer();
      while (originalMatcher.find()) {
        LOG.debug("found copyright comment");
        // add copyright header to the buffer.
        copyrightBuffer.append(originalMatcher.group());
      }

      LOG.debug("buffer: {}", copyrightBuffer);
      final Writer processedWriter = new StringWriter();
      getDecoratedObject().process(resource, new StringReader(content), processedWriter);

      final Matcher processedMatcher = PATTERN_COPYRIGHT.matcher(processedWriter.toString());

      if (!processedMatcher.find()) {
        writer.write(copyrightBuffer.toString());
      }
      writer.write(processedWriter.toString());
    } finally {
      reader.close();
      writer.close();
    }
  }
@ Override public void process ( final Resource resource , final Reader reader , final Writer writer ) throws IOException { try { final String content = IOUtils . toString ( reader ) ; final Matcher originalMatcher = PATTERN_COPYRIGHT . matcher ( content ) ; final StringBuffer copyrightBuffer = new StringBuffer ( ) ; while ( originalMatcher . find ( ) ) { LOG . debug ( "found copyright comment" ) ; copyrightBuffer . append ( originalMatcher . group ( ) ) ; } LOG . debug ( "buffer: {}" , copyrightBuffer ) ; final Writer processedWriter = new StringWriter ( ) ; getDecoratedObject ( ) . process ( resource , new StringReader ( content ) , processedWriter ) ; final Matcher processedMatcher = PATTERN_COPYRIGHT . matcher ( processedWriter . toString ( ) ) ; if ( ! processedMatcher . find ( ) ) { writer . write ( copyrightBuffer . toString ( ) ) ; } writer . write ( processedWriter . toString ( ) ) ; } finally { reader . close ( ) ; writer . close ( ) ; } }
{@inheritDoc}