Clover coverage report - Ant Coverage
Coverage timestamp: Tue Apr 8 2003 20:43:55 EST
file stats: LOC: 168   Methods: 6
NCLOC: 92   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
CRC.java 100% 77.8% 66.7% 76.5%
 1   
 /*
 2   
  * The Apache Software License, Version 1.1
 3   
  *
 4   
  * Copyright (c) 2001-2002 The Apache Software Foundation.  All rights
 5   
  * reserved.
 6   
  *
 7   
  * Redistribution and use in source and binary forms, with or without
 8   
  * modification, are permitted provided that the following conditions
 9   
  * are met:
 10   
  *
 11   
  * 1. Redistributions of source code must retain the above copyright
 12   
  *    notice, this list of conditions and the following disclaimer.
 13   
  *
 14   
  * 2. Redistributions in binary form must reproduce the above copyright
 15   
  *    notice, this list of conditions and the following disclaimer in
 16   
  *    the documentation and/or other materials provided with the
 17   
  *    distribution.
 18   
  *
 19   
  * 3. The end-user documentation included with the redistribution, if
 20   
  *    any, must include the following acknowlegement:
 21   
  *       "This product includes software developed by the
 22   
  *        Apache Software Foundation (http://www.apache.org/)."
 23   
  *    Alternately, this acknowlegement may appear in the software itself,
 24   
  *    if and wherever such third-party acknowlegements normally appear.
 25   
  *
 26   
  * 4. The names "Ant" and "Apache Software
 27   
  *    Foundation" must not be used to endorse or promote products derived
 28   
  *    from this software without prior written permission. For written
 29   
  *    permission, please contact apache@apache.org.
 30   
  *
 31   
  * 5. Products derived from this software may not be called "Apache"
 32   
  *    nor may "Apache" appear in their names without prior written
 33   
  *    permission of the Apache Group.
 34   
  *
 35   
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
 36   
  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
 37   
  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 38   
  * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
 39   
  * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
 40   
  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
 41   
  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
 42   
  * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
 43   
  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
 44   
  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
 45   
  * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 46   
  * SUCH DAMAGE.
 47   
  * ====================================================================
 48   
  *
 49   
  * This software consists of voluntary contributions made by many
 50   
  * individuals on behalf of the Apache Software Foundation.  For more
 51   
  * information on the Apache Software Foundation, please see
 52   
  * <http://www.apache.org/>.
 53   
  */
 54   
 
 55   
 /*
 56   
  * This package is based on the work done by Keiron Liddle, Aftex Software
 57   
  * <keiron@aftexsw.com> to whom the Ant project is very grateful for his
 58   
  * great code.
 59   
  */
 60   
 
 61   
 package org.apache.tools.bzip2;
 62   
 
 63   
 /**
 64   
  * A simple class the hold and calculate the CRC for sanity checking
 65   
  * of the data.
 66   
  *
 67   
  * @author <a href="mailto:keiron@aftexsw.com">Keiron Liddle</a>
 68   
  */
 69   
 class CRC {
 70   
     public static int crc32Table[] = {
 71   
         0x00000000, 0x04c11db7, 0x09823b6e, 0x0d4326d9,
 72   
         0x130476dc, 0x17c56b6b, 0x1a864db2, 0x1e475005,
 73   
         0x2608edb8, 0x22c9f00f, 0x2f8ad6d6, 0x2b4bcb61,
 74   
         0x350c9b64, 0x31cd86d3, 0x3c8ea00a, 0x384fbdbd,
 75   
         0x4c11db70, 0x48d0c6c7, 0x4593e01e, 0x4152fda9,
 76   
         0x5f15adac, 0x5bd4b01b, 0x569796c2, 0x52568b75,
 77   
         0x6a1936c8, 0x6ed82b7f, 0x639b0da6, 0x675a1011,
 78   
         0x791d4014, 0x7ddc5da3, 0x709f7b7a, 0x745e66cd,
 79   
         0x9823b6e0, 0x9ce2ab57, 0x91a18d8e, 0x95609039,
 80   
         0x8b27c03c, 0x8fe6dd8b, 0x82a5fb52, 0x8664e6e5,
 81   
         0xbe2b5b58, 0xbaea46ef, 0xb7a96036, 0xb3687d81,
 82   
         0xad2f2d84, 0xa9ee3033, 0xa4ad16ea, 0xa06c0b5d,
 83   
         0xd4326d90, 0xd0f37027, 0xddb056fe, 0xd9714b49,
 84   
         0xc7361b4c, 0xc3f706fb, 0xceb42022, 0xca753d95,
 85   
         0xf23a8028, 0xf6fb9d9f, 0xfbb8bb46, 0xff79a6f1,
 86   
         0xe13ef6f4, 0xe5ffeb43, 0xe8bccd9a, 0xec7dd02d,
 87   
         0x34867077, 0x30476dc0, 0x3d044b19, 0x39c556ae,
 88   
         0x278206ab, 0x23431b1c, 0x2e003dc5, 0x2ac12072,
 89   
         0x128e9dcf, 0x164f8078, 0x1b0ca6a1, 0x1fcdbb16,
 90   
         0x018aeb13, 0x054bf6a4, 0x0808d07d, 0x0cc9cdca,
 91   
         0x7897ab07, 0x7c56b6b0, 0x71159069, 0x75d48dde,
 92   
         0x6b93dddb, 0x6f52c06c, 0x6211e6b5, 0x66d0fb02,
 93   
         0x5e9f46bf, 0x5a5e5b08, 0x571d7dd1, 0x53dc6066,
 94   
         0x4d9b3063, 0x495a2dd4, 0x44190b0d, 0x40d816ba,
 95   
         0xaca5c697, 0xa864db20, 0xa527fdf9, 0xa1e6e04e,
 96   
         0xbfa1b04b, 0xbb60adfc, 0xb6238b25, 0xb2e29692,
 97   
         0x8aad2b2f, 0x8e6c3698, 0x832f1041, 0x87ee0df6,
 98   
         0x99a95df3, 0x9d684044, 0x902b669d, 0x94ea7b2a,
 99   
         0xe0b41de7, 0xe4750050, 0xe9362689, 0xedf73b3e,
 100   
         0xf3b06b3b, 0xf771768c, 0xfa325055, 0xfef34de2,
 101   
         0xc6bcf05f, 0xc27dede8, 0xcf3ecb31, 0xcbffd686,
 102   
         0xd5b88683, 0xd1799b34, 0xdc3abded, 0xd8fba05a,
 103   
         0x690ce0ee, 0x6dcdfd59, 0x608edb80, 0x644fc637,
 104   
         0x7a089632, 0x7ec98b85, 0x738aad5c, 0x774bb0eb,
 105   
         0x4f040d56, 0x4bc510e1, 0x46863638, 0x42472b8f,
 106   
         0x5c007b8a, 0x58c1663d, 0x558240e4, 0x51435d53,
 107   
         0x251d3b9e, 0x21dc2629, 0x2c9f00f0, 0x285e1d47,
 108   
         0x36194d42, 0x32d850f5, 0x3f9b762c, 0x3b5a6b9b,
 109   
         0x0315d626, 0x07d4cb91, 0x0a97ed48, 0x0e56f0ff,
 110   
         0x1011a0fa, 0x14d0bd4d, 0x19939b94, 0x1d528623,
 111   
         0xf12f560e, 0xf5ee4bb9, 0xf8ad6d60, 0xfc6c70d7,
 112   
         0xe22b20d2, 0xe6ea3d65, 0xeba91bbc, 0xef68060b,
 113   
         0xd727bbb6, 0xd3e6a601, 0xdea580d8, 0xda649d6f,
 114   
         0xc423cd6a, 0xc0e2d0dd, 0xcda1f604, 0xc960ebb3,
 115   
         0xbd3e8d7e, 0xb9ff90c9, 0xb4bcb610, 0xb07daba7,
 116   
         0xae3afba2, 0xaafbe615, 0xa7b8c0cc, 0xa379dd7b,
 117   
         0x9b3660c6, 0x9ff77d71, 0x92b45ba8, 0x9675461f,
 118   
         0x8832161a, 0x8cf30bad, 0x81b02d74, 0x857130c3,
 119   
         0x5d8a9099, 0x594b8d2e, 0x5408abf7, 0x50c9b640,
 120   
         0x4e8ee645, 0x4a4ffbf2, 0x470cdd2b, 0x43cdc09c,
 121   
         0x7b827d21, 0x7f436096, 0x7200464f, 0x76c15bf8,
 122   
         0x68860bfd, 0x6c47164a, 0x61043093, 0x65c52d24,
 123   
         0x119b4be9, 0x155a565e, 0x18197087, 0x1cd86d30,
 124   
         0x029f3d35, 0x065e2082, 0x0b1d065b, 0x0fdc1bec,
 125   
         0x3793a651, 0x3352bbe6, 0x3e119d3f, 0x3ad08088,
 126   
         0x2497d08d, 0x2056cd3a, 0x2d15ebe3, 0x29d4f654,
 127   
         0xc5a92679, 0xc1683bce, 0xcc2b1d17, 0xc8ea00a0,
 128   
         0xd6ad50a5, 0xd26c4d12, 0xdf2f6bcb, 0xdbee767c,
 129   
         0xe3a1cbc1, 0xe760d676, 0xea23f0af, 0xeee2ed18,
 130   
         0xf0a5bd1d, 0xf464a0aa, 0xf9278673, 0xfde69bc4,
 131   
         0x89b8fd09, 0x8d79e0be, 0x803ac667, 0x84fbdbd0,
 132   
         0x9abc8bd5, 0x9e7d9662, 0x933eb0bb, 0x97ffad0c,
 133   
         0xafb010b1, 0xab710d06, 0xa6322bdf, 0xa2f33668,
 134   
         0xbcb4666d, 0xb8757bda, 0xb5365d03, 0xb1f740b4
 135   
     };
 136   
 
 137  9
     public CRC() {
 138  9
         initialiseCRC();
 139   
     }
 140   
 
 141  24
     void initialiseCRC() {
 142  24
         globalCrc = 0xffffffff;
 143   
     }
 144   
 
 145  15
     int getFinalCRC() {
 146  15
         return ~globalCrc;
 147   
     }
 148   
 
 149  0
     int getGlobalCRC() {
 150  0
         return globalCrc;
 151   
     }
 152   
 
 153  0
     void setGlobalCRC(int newCrc) {
 154  0
         globalCrc = newCrc;
 155   
     }
 156   
 
 157  6502404
     void updateCRC(int inCh) {
 158  6502404
         int temp = (globalCrc >> 24) ^ inCh;
 159  6502404
         if (temp < 0) {
 160  3250498
             temp = 256 + temp;
 161   
         }
 162  6502404
         globalCrc = (globalCrc << 8) ^ CRC.crc32Table[temp];
 163   
     }
 164   
 
 165   
     int globalCrc;
 166   
 }
 167   
 
 168