3235. EPMO Open Source Coordination Office Redaction File Detail Report

Produced by Araxis Merge on 6/9/2017 3:49:59 PM Eastern Daylight Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.

3235.1 Files compared

# Location File Last Modified
1 Fri Jun 9 19:49:59 2017 UTC
2 eHealth_Exch (eHealth Exchange Enhancements) Build 3 docs & code_May_2017.zip\VAP_CIF_CODE0502.zip\VAP_CIF_CODE0502\VAP_CIF_CODE0502\nvap-common\src\main\java\gov\va\nvap\common\util IcnChecksum.java Wed Jun 7 05:18:48 2017 UTC

3235.2 Comparison summary

Description Between
Files 1 and 2
Text Blocks Lines
Unchanged 0 0
Changed 0 0
Inserted 1 134
Removed 0 0

3235.3 Comparison options

Whitespace
Character case Differences in character case are significant
Line endings Differences in line endings (CR and LF characters) are ignored
CR/LF characters Not shown in the comparison detail

3235.4 Active regular expressions

No regular expressions were active.

3235.5 Comparison detail

        1   package go v.va.nvap. common.uti l;
        2  
        3   /**
        4    * @author  DNS   
        5    * 
        6    *          <p>
        7    *          Class con tains algo rithm for  generating  checksums  for ICNs  that
        8    *          conforms  to the M r outine tha t does the  same thin g.
        9    */
        10   public cla ss IcnChec ksum {
        11  
        12           /* * Arrays o f integers  that are  used to ge nerate the  checksum.  */
        13           pr ivate stat ic final i nt TABLE[] [][] = {
        14                             { { 4,  9, 7, 4,  4, 4, 4, 0 , 9, 9, 7,  7, 8, 4,  6, 8 },
        15                                               { 5, 0, 6,  5, 1, 1,  2, 3, 6, 5 , 3, 5, 7,  6, 5, 5 } ,
        16                                               { 9, 4, 2,  0, 3, 7,  5, 1, 7, 1 , 0, 9, 0,  3, 2, 2 } ,
        17                                               { 3, 2, 1,  7, 7, 0,  6, 9, 2, 4 , 1, 1, 3,  8, 1, 0 } ,
        18                                               { 2, 3, 3,  9, 5, 9,  9, 2, 3, 8 , 6, 0, 1,  9, 8, 1 } ,
        19                                               { 1, 6, 8,  2, 0, 6,  1, 7, 4, 3 , 5, 4, 4,  2, 3, 3 } ,
        20                                               { 7, 8, 9,  1, 2, 2,  0, 8, 1, 6 , 8, 6, 9,  0, 0, 4 } ,
        21                                               { 6, 7, 0,  8, 8, 8,  3, 4, 5, 2 , 4, 3, 5,  1, 4, 6 } ,
        22                                               { 0, 1, 5,  6, 6, 3,  8, 5, 0, 0 , 9, 2, 2,  5, 9, 7 } ,
        23                                               { 8, 5, 4,  3, 9, 5,  7, 6, 8, 7 , 2, 8, 6,  7, 7, 9 }  },
        24  
        25                             { { 4,  7, 3, 4,  6, 0, 0, 1 , 2, 9, 5,  6, 2, 6,  1, 1 },
        26                                               { 0, 1, 9,  2, 2, 6,  4, 7, 9, 8 , 4, 9, 7,  8, 0, 7 } ,
        27                                               { 2, 6, 4,  8, 9, 2,  8, 6, 7, 0 , 9, 3, 5,  0, 8, 4 } ,
        28                                               { 8, 0, 5,  1, 3, 8,  2, 3, 4, 1 , 0, 0, 9,  1, 3, 0 } ,
        29                                               { 5, 3, 7,  0, 7, 9,  9, 9, 6, 2 , 1, 2, 8,  9, 4, 8 } ,
        30                                               { 1, 9, 8,  5, 1, 5,  1, 0, 5, 7 , 2, 8, 6,  7, 7, 9 } ,
        31                                               { 9, 5, 1,  9, 5, 4,  6, 5, 0, 6 , 3, 4, 1,  3, 9, 2 } ,
        32                                               { 3, 4, 0,  3, 8, 1,  3, 4, 8, 5 , 6, 5, 4,  2, 5, 5 } ,
        33                                               { 7, 2, 6,  6, 0, 3,  7, 8, 1, 4 , 7, 1, 0,  4, 6, 3 } ,
        34                                               { 6, 8, 2,  7, 4, 7,  5, 2, 3, 3 , 8, 7, 3,  5, 2, 6 }  },
        35  
        36                             { { 8,  5, 2, 3,  2, 7, 3, 4 , 6, 3, 6,  1, 6, 4,  5, 0 },
        37                                               { 9, 7, 3,  9, 9, 6,  0, 7, 5, 9 , 4, 5, 1,  8, 6, 2 } ,
        38                                               { 1, 4, 4,  5, 0, 0,  4, 2, 2, 6 , 1, 2, 8,  9, 8, 6 } ,
        39                                               { 4, 1, 0,  6, 3, 3,  7, 6, 8, 8 , 3, 8, 3,  1, 1, 4 } ,
        40                                               { 0, 0, 9,  0, 5, 1,  5, 3, 4, 0 , 5, 7, 7,  2, 9, 3 } ,
        41                                               { 3, 6, 6,  2, 6, 4,  6, 8, 7, 1 , 7, 4, 2,  7, 7, 9 } ,
        42                                               { 5, 8, 1,  4, 7, 2,  8, 0, 1, 7 , 2, 3, 0,  0, 4, 8 } ,
        43                                               { 2, 9, 7,  7, 4, 9,  9, 1, 3, 5 , 0, 9, 9,  6, 0, 1 } ,
        44                                               { 7, 2, 8,  1, 8, 5,  1, 5, 0, 2 , 9, 0, 5,  3, 2, 7 } ,
        45                                               { 6, 3, 5,  8, 1, 8,  2, 9, 9, 4 , 8, 6, 4,  5, 3, 5 }  },
        46  
        47                             { { 5,  0, 3, 6,  4, 0, 6, 7 , 1, 6, 4,  3, 5, 5,  6, 6 },
        48                                               { 0, 9, 7,  7, 1, 3,  4, 5, 2, 9 , 6, 6, 9,  6, 7, 1 } ,
        49                                               { 2, 3, 5,  5, 9, 2,  5, 6, 4, 4 , 8, 1, 3,  4, 2, 4 } ,
        50                                               { 4, 5, 4,  1, 0, 4,  2, 4, 6, 7 , 5, 2, 0,  1, 5, 3 } ,
        51                                               { 7, 1, 2,  3, 6, 6,  3, 0, 0, 5 , 9, 8, 2,  9, 9, 2 } ,
        52                                               { 3, 4, 0,  4, 8, 8,  9, 9, 9, 0 , 7, 0, 4,  2, 0, 0 } ,
        53                                               { 6, 7, 6,  9, 2, 5,  1, 3, 5, 8 , 2, 4, 8,  3, 8, 5 } ,
        54                                               { 1, 8, 8,  8, 3, 7,  0, 2, 3, 2 , 3, 9, 7,  0, 4, 9 } ,
        55                                               { 9, 6, 9,  0, 5, 1,  7, 1, 8, 3 , 0, 7, 1,  7, 1, 8 } ,
        56                                               { 8, 2, 1,  2, 7, 9,  8, 8, 7, 1 , 1, 5, 6,  8, 3, 7 }  },
        57  
        58                             { { 4,  4, 0, 2,  2, 9, 3, 2 , 2, 6, 5,  1, 2, 7,  2, 7 },
        59                                               { 8, 3, 6,  9, 0, 3,  9, 7, 4, 7 , 6, 6, 4,  9, 0, 0 } ,
        60                                               { 2, 7, 1,  8, 3, 5,  2, 5, 1, 8 , 9, 0, 9,  3, 6, 2 } ,
        61                                               { 7, 0, 5,  0, 9, 4,  1, 1, 6, 1 , 7, 8, 8,  2, 3, 4 } ,
        62                                               { 5, 1, 7,  7, 4, 6,  0, 8, 7, 5 , 2, 2, 1,  5, 4, 9 } ,
        63                                               { 1, 6, 9,  3, 6, 1,  8, 9, 0, 4 , 4, 3, 7,  0, 1, 8 } ,
        64                                               { 0, 9, 2,  1, 5, 0,  4, 0, 3, 9 , 1, 7, 0,  6, 7, 3 } ,
        65                                               { 9, 2, 8,  4, 8, 7,  7, 6, 5, 0 , 0, 9, 3,  1, 8, 6 } ,
        66                                               { 3, 5, 3,  6, 1, 8,  6, 3, 8, 3 , 3, 5, 6,  8, 9, 5 } ,
        67                                               { 6, 8, 4,  5, 7, 2,  5, 4, 9, 2 , 8, 4, 5,  4, 5, 1 }  },
        68  
        69                             { { 6,  2, 8, 2,  7, 3, 3, 8 , 4, 9, 2,  4, 4, 1,  6, 1 },
        70                                               { 8, 1, 9,  3, 1, 6,  7, 9, 2, 4 , 7, 5, 9,  6, 2, 0 } ,
        71                                               { 5, 3, 2,  9, 0, 1,  9, 4, 8, 7 , 4, 6, 3,  7, 8, 9 } ,
        72                                               { 0, 7, 0,  5, 8, 2,  6, 7, 6, 5 , 0, 7, 1,  9, 9, 4 } ,
        73                                               { 2, 9, 1,  4, 9, 9,  4, 0, 1, 3 , 9, 3, 0,  2, 5, 6 } ,
        74                                               { 7, 0, 3,  8, 6, 8,  0, 1, 3, 0 , 5, 9, 2,  8, 3, 8 } ,
        75                                               { 9, 6, 5,  6, 3, 4,  2, 6, 7, 6 , 3, 2, 7,  4, 1, 3 } ,
        76                                               { 4, 8, 6,  7, 4, 5,  1, 3, 5, 1 , 6, 1, 6,  3, 0, 5 } ,
        77                                               { 3, 5, 4,  1, 5, 7,  5, 5, 9, 2 , 8, 0, 8,  5, 7, 7 } ,
        78                                               { 1, 4, 7,  0, 2, 0,  8, 2, 0, 8 , 1, 8, 5,  0, 4, 2 }  } };
        79  
        80           /* *
        81            *  Adds the  'V' and th e checksum  to the IC N passed i n as a par ameter and
        82            *  returns i t.
        83            *  
        84            *  @param ic n
        85            *              The ICN  to calcula te and app end the ch eck sum to .
        86            *  @return T he ICN wit h the chec k sum appe nded.
        87            * /
        88           pu blic stati c String a ddChecksum ToIcn(fina l String i cn) {
        89                    retu rn icn + " V" + IcnCh ecksum.gen erateIcnCh ecksum(icn );
        90           }
        91  
        92           /* *
        93            *  Generates  the check sum for th e ICN pass ed in as a  parameter .
        94            *  
        95            *  @param ic n
        96            *              The icn  to generat e the chec ksum for.
        97            *  @return T he checksu m for the  ICN.
        98            * /
        99           pu blic stati c String g enerateIcn Checksum(f inal Strin g icn) {
        100  
        101                    fina l StringBu ilder out  = new Stri ngBuilder( );
        102                    fina l StringBu ilder buf  = new Stri ngBuilder( icn);
        103                    fina l int map[ ] = { 0, 0 , 0, 0, 0,  0, 0, 0,  0, 0, 0, 0 , 0, 0, 0,  0, 0 };
        104  
        105                    whil e (buf.len gth() < 16 ) {
        106                             buf.in sert(0, "0 ");
        107                    }
        108  
        109                    for  (int i = 0 ; i < 6; i ++) {
        110  
        111                             for (i nt j = 0;  j < 16; j+ +) {
        112  
        113                                      final St ring s = b uf.substri ng(j, j +  1);
        114                                      int n;
        115  
        116                                      try {
        117                                               n = Intege r.parseInt (s);
        118                                      } catch  (final Num berFormatE xception e ) {
        119                                               n = 0;
        120                                      }
        121  
        122                                      final in t sum = (n  + map[j])  % 10;
        123                                      map[j +  1] = IcnCh ecksum.TAB LE[i][sum] [j];
        124                             }
        125  
        126                             out.ap pend(map[1 6]);
        127  
        128                    }
        129  
        130                    retu rn out.toS tring();
        131  
        132           }
        133  
        134   }