ImmutableList<Optional<Object>> valuesAncestor = ancestor.getValues();
ImmutableList<PropertyDescriptor> descriptors = featureType.sortedDescriptors();
for (int i = 0; i < descriptors.size(); i++) {
PropertyDescriptor descriptor = descriptors.get(i);
boolean isGeom = Geometry.class.isAssignableFrom(descriptor.getType().getBinding());
Name name = descriptor.getName();
Optional<Object> valueAncestor = valuesAncestor.get(i);
Optional<Object> valueA = valuesA.get(i);
Optional<Object> valueB = valuesB.get(i);
if (!valueA.equals(valueAncestor)) {
Optional<Object> merged = valueA;