Example #1
0
 public static YailList fromCsvTable(String csvString) throws Exception {
   CsvParser csvParser = new CsvParser(new StringReader(csvString));
   ArrayList<YailList> csvList = new ArrayList<YailList>();
   while (csvParser.hasNext()) {
     csvList.add(YailList.makeList(csvParser.next()));
   }
   csvParser.throwAnyProblem();
   return YailList.makeList(csvList);
 }
Example #2
0
 private static void makeCsvRow(YailList row, StringBuilder csvStringBuilder) {
   String fieldDelim = "";
   for (Object fieldObj : row.toArray()) {
     String field = fieldObj.toString();
     field = field.replaceAll("\"", "\"\"");
     csvStringBuilder.append(fieldDelim).append("\"").append(field).append("\"");
     fieldDelim = ",";
   }
 }
Example #3
0
 // Requires: elements of rows are strings
 // TODO(sharon): do we want to enforce any consistency constraints here, e.g.,
 // all rows have same number of elements?
 public static String toCsvTable(YailList csvList) {
   StringBuilder csvStringBuilder = new StringBuilder();
   for (Object rowObj : csvList.toArray()) {
     makeCsvRow((YailList) rowObj, csvStringBuilder);
     // http://tools.ietf.org/html/rfc4180 suggests that CSV lines should be
     // terminated
     // by CRLF, hence the \r\n.
     csvStringBuilder.append("\r\n");
   }
   return csvStringBuilder.toString();
 }
Example #4
0
 public static YailList fromCsvRow(String csvString) throws Exception {
   CsvParser csvParser = new CsvParser(new StringReader(csvString));
   if (csvParser.hasNext()) {
     YailList row = YailList.makeList(csvParser.next());
     if (csvParser.hasNext()) {
       // more than one row is an error
       throw new IllegalArgumentException("CSV text has multiple rows. Expected just one row.");
     }
     csvParser.throwAnyProblem();
     return row;
   }
   throw new IllegalArgumentException("CSV text cannot be parsed as a row.");
 }