Vector l = org.cougaar.util.StringUtility.parseCSV(arg); for (Iterator it = l.iterator(); it.hasNext();) { c.add((String)parseE(etype, (String)it.next()));
Collection coll = org.cougaar.util.CSVUtility.parseToCollection(arg); for (Iterator iterator = coll.iterator(); iterator.hasNext();) { String o = (String) iterator.next(); c.add(parseE(etype, o));
  private Object parseE(String type, String arg) {    int i;    type = type.trim();    arg = arg.trim();    if ((i = type.indexOf("<")) >= 0) {      int j = type.lastIndexOf(">");      String ctype = type.substring(0, i).trim();      String etype = type.substring(i + 1, j).trim();      Collection c = null;      if (ctype.equals("Collection") || ctype.equals("List")) {        c = new ArrayList();      } else {        throw new RuntimeException("Unparsable collection type: "+type);      }      Vector l = org.cougaar.util.StringUtility.parseCSV(arg);      for (Iterator it = l.iterator(); it.hasNext();) {        c.add((String)parseE(etype, (String)it.next()));      }      return c;    } else if ((i = type.indexOf("/")) >= 0) {      // Measure Object.  How should we handle this?      return arg;    } else {      return arg;    }      }