/** Encode a feature properties. Geometry attribute will be ignored. */ private void encodeProperties( Property geometryAttribute, PropertyType parentType, Collection<Property> properties) { // index all the feature available properties by their type Map<PropertyType, List<Property>> index = indexPropertiesByType(geometryAttribute, properties); for (Map.Entry<PropertyType, List<Property>> entry : index.entrySet()) { // encode properties per type encodePropertiesByType(parentType, entry.getKey(), entry.getValue()); } }