public @Override SimpleFeature apply(DiffObjectInfo<RevFeature> info) { DiffEntry entry = info.entry(); final String id = entry.name(); RevFeature oldFeature = info.oldValue().orElse(null); RevFeature newFeature = info.newValue().orElse(null); final ChangeType changeType = info.entry().changeType(); diffFeatureBuilder.set(BulkFeatureRetriever.DIFF_FEATURE_CHANGETYPE_ATTNAME, Integer.valueOf(changeType.value())); List<String> nativeTypeNames = this.nativeAttNames; for (int i = 0; i < nativeTypeNames.size(); i++) { String attNameFlattenedOld = flattenedAttNames.get(2 * i); String attNameFlattenedNew = flattenedAttNames.get(2 * i + 1); Object o = oldFeature == null ? null : oldFeature.get(i).orNull(); Object n = newFeature == null ? null : newFeature.get(i).orNull(); diffFeatureBuilder.set(attNameFlattenedOld, o); diffFeatureBuilder.set(attNameFlattenedNew, n); } return diffFeatureBuilder.buildFeature(id); } }
public @Override SimpleFeature apply(DiffObjectInfo<RevFeature> info) { DiffEntry entry = info.entry(); final String id = entry.name(); RevFeature oldFeature = info.oldValue().orElse(null); RevFeature newFeature = info.newValue().orElse(null); SimpleFeature oldValue; SimpleFeature newValue; oldValue = (SimpleFeature) (oldFeature == null ? null : valueBuilder.build(id, oldFeature, geometryFactory)); newValue = (SimpleFeature) (newFeature == null ? null : valueBuilder.build(id, newFeature, geometryFactory)); SimpleFeature diffFeature; diffFeatureBuilder.reset(); final ChangeType changeType = info.entry().changeType(); diffFeatureBuilder.set(BulkFeatureRetriever.DIFF_FEATURE_CHANGETYPE_ATTNAME, Integer.valueOf(changeType.value())); diffFeatureBuilder.set("old", oldValue); diffFeatureBuilder.set("new", newValue); diffFeature = diffFeatureBuilder.buildFeature(id); return diffFeature; } }
@Test public void testChangeTypes() { assertEquals(ChangeType.ADDED, ChangeType.valueOf(ChangeType.ADDED.value())); assertEquals(ChangeType.REMOVED, ChangeType.valueOf(ChangeType.REMOVED.value())); assertEquals(ChangeType.MODIFIED, ChangeType.valueOf(ChangeType.MODIFIED.value())); exception.expect(ArrayIndexOutOfBoundsException.class); ChangeType.valueOf(3); }