public Object tryArgument(String arg) throws Exception { try { ArrayList<Object> retval = new ArrayList<Object>(); String[] values = arg.split(separator); if (values.length == 0) { throw new Exception("Invalid argument"); } if (values.length == 1) { return handler.tryArgument(values[0]); } if (values.length > maxEntries) { throw new Exception(String.format("Cannot exceed %d entries", maxEntries)); } for (String v : values) { Object param = handler.tryArgument(v); if (param == null) { throw new Exception(String.format("Invalid member of list: %s", v)); } retval.add(param); } return retval; } catch (Exception e) { throw e; } }
public String toUsageString(String prepend) { StringBuilder builder = new StringBuilder(); builder.append(prepend); builder.append(String.format("%s: %s", name, description)); builder.append("\n"); if (defaultValue != null) { builder.append(prepend); builder.append(String.format("\tDefault: %s", defaultValue.toString())); builder.append("\n"); } String handlerUsage = handler.toUsageString(prepend); if (handlerUsage != null && handlerUsage.length() > 0) { builder.append("\t"); builder.append(handlerUsage); builder.append("\n"); } return builder.toString(); }