Coverage Report - net.sourceforge.addam.impexp.csv.MapCSVParser
 
Classes in this File Line Coverage Branch Coverage Complexity
MapCSVParser
0%
0/15
0%
0/4
2.667
 
 1  
 /*
 2  
  * Copyright (c) 2004 International Decision Systems, Inc.  All Rights Reserved.
 3  
  *
 4  
  * By using this Software, You acknowledge that the Software is a valuable asset
 5  
  * and trade secret of either International Decision Systems, Inc. ("IDSI") or a
 6  
  * third party supplier of IDSI and constitutes confidential and proprietary
 7  
  * information.
 8  
  *
 9  
  * NEITHER IDSI NOR ANY AGENT OR PERSON ACTING FOR OR WITH IDSI HAS MADE OR DOES
 10  
  * MAKE ANY STATEMENTS, AFFIRMATIONS, REPRESENTATIONS OR WARRANTIES WHATSOEVER
 11  
  * TO YOU, WHETHER EXPRESS OR IMPLIED, AS TO THE SOFTWARE, THE QUALITY OR
 12  
  * CONDITION OF THE SOFTWARE, OR THE OPERATING CHARACTERISTICS OR RELIABILITY OF
 13  
  * THE SOFTWARE, OR ITS SUITABILITY FOR ANY GENERAL OR PARTICULAR PURPOSE, OR AS
 14  
  * TO ANY OTHER MATTER WHATSOEVER; ANY AND ALL OTHER WARRANTIES INCLUDING
 15  
  * WITHOUT LIMITATION ANY WARRANTIES IMPLIED BY LAW, SUCH AS THE IMPLIED
 16  
  * WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND TITLE,
 17  
  * USE AND NON-INFRINGEMENT; ARE HEREBY EXPRESSLY DISCLAIMED AND EXCLUDED.
 18  
 */
 19  
 package net.sourceforge.addam.impexp.csv;
 20  
 
 21  
 import java.io.IOException;
 22  
 import java.io.Reader;
 23  
 import java.util.HashMap;
 24  
 import java.util.List;
 25  
 import java.util.Map;
 26  
 
 27  
 /**
 28  
  * Parses a CSV file, reading the first line as a header line containing keys;
 29  
  * each record is returned as a map from the header line key to the column value.
 30  
  * If any row has a different number of columns as the header row, an
 31  
  * IndexOutOfBoundsException is thrown.
 32  
  *
 33  
  * @author Tim Dawson
 34  
  * @since Sep 21, 2004
 35  
  */
 36  
 public class MapCSVParser extends CSVParser {
 37  
 
 38  
     private List keys;
 39  
 
 40  
     public MapCSVParser(Reader in) {
 41  0
         super(in);
 42  0
     }
 43  
 
 44  
     private List getKeys() throws IOException, CSVFormatException {
 45  0
         if (keys == null) {
 46  0
             keys = readLine();
 47  
         }
 48  0
         return keys;
 49  
     }
 50  
 
 51  
     public Map readMap() throws IOException, CSVFormatException {
 52  0
         List keys = getKeys();
 53  0
         List values = readLine();
 54  0
         Map returnValue = new HashMap();
 55  0
         if (values != null && values.size() > 0) {
 56  0
             if (keys.size() != values.size()) {
 57  0
                 throw new IndexOutOfBoundsException("row " + this.getLineNumber() +
 58  0
                         " has " + values.size() + " instead of " + keys.size());
 59  
             }
 60  
 
 61  0
             for (int i = 0; i < keys.size(); i++) {
 62  0
                 returnValue.put(keys.get(i), values.get(i));
 63  
             }
 64  
         }
 65  
 
 66  0
         return returnValue;
 67  
     }
 68  
 }