@Override public void write(DataOutputStream out, FeatureInfo value) throws IOException { String path = value.getPath(); ObjectId featureTypeId = value.getFeatureTypeId(); RevFeature feature = value.getFeature(); out.writeUTF(path); MergeStatusBuilder.OID.write(out, featureTypeId); DataStreamRevObjectSerializerV2.INSTANCE.write(feature, out); }
@Override public void write(DataOutputStream out, FeatureInfo value) throws IOException { String path = value.getPath(); ObjectId featureTypeId = value.getFeatureTypeId(); RevFeature feature = value.getFeature(); out.writeUTF(path); OID.write(out, featureTypeId); DataStreamSerializationFactoryV2.INSTANCE.write(feature, out); }
for (FeatureInfo feature : addedFeatures) { String path = feature.getPath(); sb.append("A\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature(); sb.append("R\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature();
for (FeatureInfo feature : addedFeatures) { String path = feature.getPath(); sb.append("A\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature(); sb.append("R\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature();
sb.append("A\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature(); sb.append("R\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature();
sb.append("A\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature(); sb.append("R\t" + path + "\t" + feature.getFeatureTypeId() + "\n"); ByteArrayOutputStream output = new ByteArrayOutputStream(); RevFeature revFeature = feature.getFeature();
final String fid = NodeRef.nodeFromPath(fi.getPath()); @Nullable ObjectId metadataId = fi.getFeatureTypeId(); CanonicalTreeBuilder parentBuilder = getTreeBuilder(currentTrees, parentBuilders, parentPath, metadataId); NodeRef parentRef = currentTrees.get(parentPath); Preconditions.checkNotNull(parentRef); if (fi.getFeatureTypeId().equals(parentRef.getMetadataId())) {
final String fid = NodeRef.nodeFromPath(fi.getPath()); @Nullable ObjectId metadataId = fi.getFeatureTypeId(); RevTreeBuilder parentBuilder = getTreeBuilder(currentTrees, parentBuilders, parentPath, metadataId); NodeRef parentRef = currentTrees.get(parentPath); Preconditions.checkNotNull(parentRef); if (fi.getFeatureTypeId().equals(parentRef.getMetadataId())) {
@Test public void testIdenticalFeatureData() { ObjectDatabase odb = mock(ObjectDatabase.class); RevFeature f1 = mock(RevFeature.class); when(f1.getId()).thenReturn(getOID(1)); when(odb.getAll(anyObject(), anyObject(), anyObject())) .thenReturn((Arrays.asList((RevObject) f1 )).iterator()); BulkObjectDatabaseFeatureRetriever bulk = new BulkObjectDatabaseFeatureRetriever(odb); ObjectId metadataid = getOID(4); Node n1 = Node.create("name1", getOID(1), metadataid, TYPE.FEATURE, new Envelope()); NodeRef nr1 = new NodeRef(n1, "testcase", metadataid); Node n2 = Node.create("name2", getOID(1), metadataid, TYPE.FEATURE, new Envelope()); NodeRef nr2 = new NodeRef(n2, "testcase", metadataid); Iterator<FeatureInfo> it = bulk.apply(Arrays.asList(nr1, nr2)); List<FeatureInfo> feats = Lists.newArrayList(it); Assert.isTrue(feats.size() == 2); Assert.isTrue(feats.get(0).getFeatureTypeId() == metadataid); Assert.isTrue(feats.get(0).getName() .equals("name1")); Assert.equals(feats.get(0).getFeature().getId(), getOID(1)); Assert.isTrue(feats.get(1).getFeatureTypeId() == metadataid); Assert.isTrue(feats.get(1).getName() .equals( "name2")); Assert.equals(feats.get(1).getFeature().getId(), getOID(1)); }
if (obj.isPresent()) { toReject.addAddedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); } else { toApply.addAddedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); if (!obj.isPresent()) { toReject.addRemovedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); } else { RevFeature revFeature = (RevFeature) obj.get(); RevFeature patchRevFeature = feature.getFeature(); if (revFeature.equals(patchRevFeature) && revFeatureTypeId.equals(feature.getFeatureTypeId())) { toApply.addRemovedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); } else { toReject.addRemovedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache));
/** * this is a simple test that puts 2 features in the objectDatabase then retrieves them. It * checks the correlation is correct. */ @Test public void testBulkGet() { ObjectDatabase odb = mock(ObjectDatabase.class); RevFeature f1 = mock(RevFeature.class); when(f1.getId()).thenReturn(getOID(1)); RevFeature f2 = mock(RevFeature.class); when(f2.getId()).thenReturn(getOID(2)); when(odb.getAll(anyObject(), anyObject(), anyObject())) .thenReturn((Arrays.asList((RevObject) f1, (RevObject) f2)).iterator()); BulkObjectDatabaseFeatureRetriever bulk = new BulkObjectDatabaseFeatureRetriever(odb); ObjectId metadataid = getOID(4); Node n1 = Node.create("name1", getOID(1), metadataid, TYPE.FEATURE, new Envelope()); NodeRef nr1 = new NodeRef(n1, "testcase", metadataid); Node n2 = Node.create("name2", getOID(2), metadataid, TYPE.FEATURE, new Envelope()); NodeRef nr2 = new NodeRef(n2, "testcase", metadataid); Iterator<FeatureInfo> it = bulk.apply(Arrays.asList(nr1, nr2)); List<FeatureInfo> feats = Arrays.asList(it.next(), it.next()); Assert.isTrue(feats.get(0).getFeatureTypeId() == metadataid); Assert.isTrue(feats.get(0).getName() .equals("name1")); Assert.equals(feats.get(0).getFeature().getId(), getOID(1)); Assert.isTrue(feats.get(1).getFeatureTypeId() == metadataid); Assert.isTrue(feats.get(1).getName() .equals( "name2")); Assert.equals(feats.get(1).getFeature().getId(), getOID(2)); }
if (obj.isPresent()) { toReject.addAddedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); } else { toApply.addAddedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); if (!obj.isPresent()) { toReject.addRemovedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); } else { RevFeature revFeature = (RevFeature) obj.get(); RevFeature patchRevFeature = feature.getFeature(); if (revFeature.equals(patchRevFeature) && revFeatureTypeId.equals(feature.getFeatureTypeId())) { toApply.addRemovedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache)); } else { toReject.addRemovedFeature(feature.getPath(), feature.getFeature(), getType(feature.getFeatureTypeId(), typeCache));
GeometryChange change = null; RevFeature revFeature = input.getFeature(); ObjectId typeId = input.getFeatureTypeId(); RevFeatureType featureType = typeCache.get(typeId); if (null == featureType) {
FeatureInfo info = FeatureInfo.insert(testFeature, oid1, "Points/1"); assertEquals(testFeature, info.getFeature()); assertEquals(oid1, info.getFeatureTypeId()); assertEquals("Points/1", info.getPath());