@Override protected void print(RevFeature feature, Writer w) throws IOException { ImmutableList<Optional<Object>> values = feature.getValues(); for (Optional<Object> opt : values) { final FieldType type = FieldType.forValue(opt); String valueString = TextValueSerializer.asString(opt); println(w, type.toString() + "\t" + valueString); } w.flush(); }
private Object parseAttribute(String line) { List<String> tokens = Lists.newArrayList(Splitter.on('\t').split(line)); Preconditions.checkArgument(tokens.size() == 2, "Wrong attribute definition: %s", line); String typeName = tokens.get(0); String value = tokens.get(1); FieldType type; try { type = FieldType.valueOf(typeName); } catch (IllegalArgumentException e) { throw new IllegalArgumentException("Wrong type name: " + typeName); } return TextValueSerializer.fromString(type, value); }