public Object unmarshal(HierarchicalStreamReader reader, final UnmarshallingContext context) { if (reader.hasMoreChildren()) { /* old format where <range> elements are nested like <range> <start>1337</start> <end>1479</end> </range> */ return new RangeSet((List<Range>) (collectionConv.unmarshal(reader, context))); } else { return RangeSet.fromString(reader.getValue(), true); } }