sb.append(diff.toString() + "\n"); if (!diff.getNewFeatureType().equals(ObjectId.NULL) && !diff.getOldFeatureType().equals(ObjectId.NULL)) { RevFeatureType oldFeatureType = getFeatureTypeFromId(diff.getOldFeatureType()).get(); RevFeatureType newFeatureType = getFeatureTypeFromId(diff.getNewFeatureType()).get(); ImmutableList<PropertyDescriptor> oldDescriptors = oldFeatureType.descriptors();
sb.append(diff.toString() + "\n"); if (!diff.getNewFeatureType().equals(ObjectId.NULL) && !diff.getOldFeatureType().equals(ObjectId.NULL)) { RevFeatureType oldFeatureType = getFeatureTypeFromId(diff.getOldFeatureType()).get(); RevFeatureType newFeatureType = getFeatureTypeFromId(diff.getNewFeatureType()).get(); ImmutableList<PropertyDescriptor> oldDescriptors = oldFeatureType.descriptors();
for (FeatureTypeDiff diff : alteredTrees) { Optional<RevFeatureType> featureType; if (diff.getOldFeatureType().isNull()) { featureType = patch.getFeatureTypeFromId(diff.getNewFeatureType()); workTree.createTypeTree(diff.getPath(), featureType.get().type());
for (FeatureTypeDiff diff : alteredTrees) { Optional<RevFeatureType> featureType; if (diff.getOldFeatureType().isNull()) { featureType = patch.getFeatureTypeFromId(diff.getNewFeatureType()); workTree.createTypeTree(diff.getPath(), featureType.get().type());
ObjectId metadataId = noderef.isPresent() ? noderef.get().getMetadataId() : ObjectId.NULL; if (Objects.equal(metadataId, diff.getOldFeatureType())) { toApply.addAlteredTree(diff); } else {
ObjectId metadataId = noderef.isPresent() ? noderef.get().getMetadataId() : ObjectId.NULL; if (Objects.equal(metadataId, diff.getOldFeatureType())) { toApply.addAlteredTree(diff); } else {
@Test public void testCreatePatchAddNewEmptyFeatureTypeToEmptyRepo() throws Exception { WorkingTree workingTree = geogig.getRepository().workingTree(); workingTree.createTypeTree(linesName, linesType); DiffOp op = geogig.command(DiffOp.class).setReportTrees(true); try (AutoCloseableIterator<DiffEntry> diffs = op.call()) { Patch patch = geogig.command(CreatePatchOp.class).setDiffs(diffs).call(); assertEquals(1, patch.getAlteredTrees().size()); assertEquals(ObjectId.NULL, patch.getAlteredTrees().get(0).getOldFeatureType()); assertEquals(RevFeatureTypeBuilder.build(linesType).getId(), patch.getAlteredTrees().get(0).getNewFeatureType()); assertEquals(1, patch.getFeatureTypes().size()); } }
@Test public void testCreatePatchAddNewEmptyFeatureTypeToEmptyRepo() throws Exception { WorkingTree workingTree = geogig.getRepository().workingTree(); workingTree.createTypeTree(linesName, linesType); DiffOp op = geogig.command(DiffOp.class).setReportTrees(true); try (AutoCloseableIterator<DiffEntry> diffs = op.call()) { Patch patch = geogig.command(CreatePatchOp.class).setDiffs(diffs).call(); assertEquals(1, patch.getAlteredTrees().size()); assertEquals(ObjectId.NULL, patch.getAlteredTrees().get(0).getOldFeatureType()); assertEquals(RevFeatureType.builder().type(linesType).build().getId(), patch.getAlteredTrees().get(0).getNewFeatureType()); assertEquals(1, patch.getFeatureTypes().size()); } }
@Test public void testCreatePatchModifyFeatureType() throws Exception { DiffOp op = geogig.command(DiffOp.class).setReportTrees(true); insertAndAdd(points1, points2); geogig.getRepository().workingTree().updateTypeTree(pointsName, modifiedPointsType); try (AutoCloseableIterator<DiffEntry> diffs = op.call()) { Patch patch = geogig.command(CreatePatchOp.class).setDiffs(diffs).call(); assertEquals(1, patch.getAlteredTrees().size()); assertEquals(RevFeatureTypeBuilder.build(pointsType).getId(), patch.getAlteredTrees().get(0).getOldFeatureType()); assertEquals(RevFeatureTypeBuilder.build(modifiedPointsType).getId(), patch.getAlteredTrees().get(0).getNewFeatureType()); assertEquals(2, patch.getFeatureTypes().size()); } }
@Test public void testCreatePatchRemoveEmptyFeatureType() throws Exception { WorkingTree workingTree = geogig.getRepository().workingTree(); workingTree.createTypeTree(linesName, linesType); geogig.command(AddOp.class).setUpdateOnly(false).call(); workingTree.delete(linesName); DiffOp op = geogig.command(DiffOp.class).setReportTrees(true); try (AutoCloseableIterator<DiffEntry> diffs = op.call()) { Patch patch = geogig.command(CreatePatchOp.class).setDiffs(diffs).call(); assertEquals(1, patch.getAlteredTrees().size()); assertEquals(RevFeatureTypeBuilder.build(linesType).getId(), patch.getAlteredTrees().get(0).getOldFeatureType()); assertEquals(ObjectId.NULL, patch.getAlteredTrees().get(0).getNewFeatureType()); assertEquals(1, patch.getFeatureTypes().size()); } }
@Test public void testCreatePatchModifyFeatureType() throws Exception { DiffOp op = geogig.command(DiffOp.class).setReportTrees(true); insertAndAdd(points1, points2); geogig.getRepository().workingTree().updateTypeTree(pointsName, modifiedPointsType); try (AutoCloseableIterator<DiffEntry> diffs = op.call()) { Patch patch = geogig.command(CreatePatchOp.class).setDiffs(diffs).call(); assertEquals(1, patch.getAlteredTrees().size()); assertEquals(RevFeatureType.builder().type(pointsType).build().getId(), patch.getAlteredTrees().get(0).getOldFeatureType()); assertEquals(RevFeatureType.builder().type(modifiedPointsType).build().getId(), patch.getAlteredTrees().get(0).getNewFeatureType()); assertEquals(2, patch.getFeatureTypes().size()); } }
@Test public void testCreatePatchRemoveEmptyFeatureType() throws Exception { WorkingTree workingTree = geogig.getRepository().workingTree(); workingTree.createTypeTree(linesName, linesType); geogig.command(AddOp.class).setUpdateOnly(false).call(); workingTree.delete(linesName); DiffOp op = geogig.command(DiffOp.class).setReportTrees(true); try (AutoCloseableIterator<DiffEntry> diffs = op.call()) { Patch patch = geogig.command(CreatePatchOp.class).setDiffs(diffs).call(); assertEquals(1, patch.getAlteredTrees().size()); assertEquals(RevFeatureType.builder().type(linesType).build().getId(), patch.getAlteredTrees().get(0).getOldFeatureType()); assertEquals(ObjectId.NULL, patch.getAlteredTrees().get(0).getNewFeatureType()); assertEquals(1, patch.getFeatureTypes().size()); } }