Project Report: fawkez

Packagesummary org.jcoderz.phoenix.report

org.jcoderz.phoenix.report.JCoverageInputStream

LineHitsNoteSource
1  /*
2   * $Id: JCoverageInputStream.java 1011 2008-06-16 17:57:36Z amandel $
3   *
4   * Copyright 2006, The jCoderZ.org Project. All rights reserved.
5   *
6   * Redistribution and use in source and binary forms, with or without
7   * modification, are permitted provided that the following conditions are
8   * met:
9   *
10   *    * Redistributions of source code must retain the above copyright
11   *      notice, this list of conditions and the following disclaimer.
12   *    * Redistributions in binary form must reproduce the above
13   *      copyright notice, this list of conditions and the following
14   *      disclaimer in the documentation and/or other materials
15   *      provided with the distribution.
16   *    * Neither the name of the jCoderZ.org Project nor the names of
17   *      its contributors may be used to endorse or promote products
18   *      derived from this software without specific prior written
19   *      permission.
20   *
21   * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS "AS IS" AND
22   * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
24   * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS
25   * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26   * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27   * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
28   * BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
29   * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
30   * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
31   * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32   */
33  package org.jcoderz.phoenix.report;
34  
35  import java.io.ByteArrayInputStream;
36  import java.io.ByteArrayOutputStream;
37  import java.io.IOException;
38  import java.io.InputStream;
39  import java.util.logging.Logger;
40  
41  /**
42   * 
43   * @author Michael Griffel
44   */
45  public final class JCoverageInputStream
46     extends InputStream
47  {
480    private static final String CLASSNAME = JCoverageInputStream.class.getName();
490    private static final Logger logger = Logger.getLogger(CLASSNAME);
50     
51     private InputStream mPatchInputStream;
52     
53 (1)   public JCoverageInputStream (InputStream in)
54        throws IOException
550    {
560       final ByteArrayOutputStream out = new ByteArrayOutputStream();
570       int c = 0;
580       boolean isString = false;
590       while ((c = in.read()) != -1)
60        {
610          if (c == '\"')
62           {
630(2)            isString = ! isString;
64           }
65           
660          if (isString)
67           {
680             switch (c)
69              {
70                 case '>':
710                   out.write(">".getBytes());
720                   break;
73  
74                 case '<':
750                   out.write("&lt;".getBytes());
760                   break;
77  
78                 default :
790                   out.write(c);
800                   break;
81              }
82           }
83           else
84           {
850             out.write(c);
86           }
87        }
880       mPatchInputStream = new ByteArrayInputStream(out.toByteArray());
890    }
90     
91     /** {@inheritDoc} */
92     public int read () throws IOException
93     {
940       return mPatchInputStream.read();
95     }
96  
97     /** {@inheritDoc} */
98     public int read (byte[] b, int off, int len) throws IOException
99     {
1000       return mPatchInputStream.read(b, off, len);
101     }
102     
103     /** {@inheritDoc} */
104     public void close ()
105           throws IOException
106     {
1070       if (mPatchInputStream != null)
108        {
1090          mPatchInputStream.close();
1100          mPatchInputStream = null;
111        }
1120    }
113     
114  }

Findings in this File

c (1) 53 : 4 Missing a Javadoc comment.
c (2) 63 : 24 Use bitwise inversion to invert boolean values