Update of /var/cvs/src/org/mmbase/util In directory james.mmbase.org:/tmp/cvs-serv26690
Modified Files: CSVReader.java Log Message: more generics See also: http://cvs.mmbase.org/viewcvs/src/org/mmbase/util Index: CSVReader.java =================================================================== RCS file: /var/cvs/src/org/mmbase/util/CSVReader.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -b -r1.2 -r1.3 --- CSVReader.java 12 Jan 2009 11:28:19 -0000 1.2 +++ CSVReader.java 12 Jan 2009 12:22:31 -0000 1.3 @@ -20,7 +20,7 @@ * written by Ian F. Darwin: "\"([^\"]+?)\",?|([^,]+),?|,". * * @author Andr\U00e9 vanToly <an...@toly.nl> - * @version $Rev$ + * @version $Id: CSVReader.java,v 1.3 2009/01/12 12:22:31 michiel Exp $ */ public class CSVReader { @@ -32,7 +32,7 @@ private static Pattern csv_pattern = Pattern.compile("\"([^\"]+?)\",?|([^,]+),?|,"); public List<String> lines = new ArrayList<String>(); // list with rows as strings public List<String> header = new ArrayList<String>(); - public Map<Integer, ArrayList> rows = new HashMap<Integer, ArrayList>(); // contains rows as arrays + public Map<Integer, List<String>> rows = new HashMap<Integer, List<String>>(); // contains rows as arrays /** * Constructor @@ -84,8 +84,9 @@ header.clear(); rows.clear(); header = parse( lines.get(0) ); // first could be header - for (int i = 0; i < lines.size(); i++) { - rows.put(i, parse( lines.get(i)) ); + int i = 0; + for (String l : lines) { + rows.put(i++, parse(l)); } } } catch(java.nio.charset.IllegalCharsetNameException ice) { @@ -106,17 +107,17 @@ * @return the element as a String. */ public String getElement(int r, int c) { - ArrayList<String> row = rows.get(r); + List<String> row = rows.get(r); String value = row.get(c); return value; } - public Map getValues(String filename) { + public Map<Integer, List<String>> getValues(String filename) { return getValues(filename, null, null); } - public Map getValues(String filename, String delimiter) { + public Map<Integer, List<String>> getValues(String filename, String delimiter) { return getValues(filename, delimiter, null); } @@ -124,8 +125,9 @@ * Map to use in a taglib function. Calls {...@link #readCSV} and returns csv-file rows. * @param filename CSV file * @return map with an array per row with values + * @todo I don't understand why it does not return List<List<String>> in stead. */ - public Map getValues(String filename, String delimiter, String charset) { + public Map<Integer, List<String>> getValues(String filename, String delimiter, String charset) { if (delimiter == null || "".equals(delimiter)) delimiter = this.delimiter; if (charset == null || "".equals(charset)) charset = this.charset; readCSV(filename, delimiter, charset); @@ -147,8 +149,8 @@ * @param line row in a csv file * @return List of Strings, minus their double quotes */ - private ArrayList parse(String line) { - ArrayList list = new ArrayList(); + private List<String> parse(String line) { + List<String> list = new ArrayList<String>(); Matcher m = csv_pattern.matcher(line); while (m.find()) { String match = m.group(); _______________________________________________ Cvs mailing list Cvs@lists.mmbase.org http://lists.mmbase.org/mailman/listinfo/cvs