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 <[email protected]>
- * @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
[email protected]
http://lists.mmbase.org/mailman/listinfo/cvs