/** * */ package timeflow.format.field; import timeflow.model.Display; public class FormatStringArray extends FieldFormat { @Override public String format(Object o) { return Display.arrayToString((String[])o); } @Override public Object _parse(String s) { return parseList(s); } public static String[] parseList(String s) { String[] t= s.length()==0 ? new String[0] : s.split(","); for (int i=0; i<t.length; i++) t[i]=t[i].trim(); return t; } public String feedback() { if (lastValue==null) return "Couldn't understand"; String[] s=(String[])lastValue; if (s.length==0) return "Empty list"; if (s.length==1) return "One item"; return s.length+" items"; } @Override public Class getType() { return String[].class; } @Override public double scoreFormatMatch(String s) { double commas=-1; for (int i=s.length()-1; i>=0; i--) if (s.charAt(i)==',') commas++; return commas/s.length(); } @Override public String getHumanName() { return "List"; } }