@Override public RelationMemberList allKnownOsmMembers() { return getRelationMembersAsDynamicEntities(subRelation().allKnownOsmMembers()); }
public static CompleteRelation from(final Relation relation) { return new CompleteRelation(relation.getIdentifier(), relation.getTags(), relation.bounds(), relation.members().asBean(), relation.allRelationsWithSameOsmIdentifier().stream().map(Relation::getIdentifier) .collect(Collectors.toList()), relation.allKnownOsmMembers().asBean(), relation.osmRelationIdentifier(), relation.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet())); }
final RelationBean mergedAllKnownMembers = mergedMember("allKnownOsmMembers", thisReference, thatReference, entity -> ((Relation) entity).allKnownOsmMembers() == null ? null : ((Relation) entity).allKnownOsmMembers().asBean(), Optional.of(relationBeanMerger));
for (final RelationMember member : relation.allKnownOsmMembers())
@Test public void testFull() { final Atlas atlas = this.rule.getAtlas(); final Relation source = atlas.relation(22); final CompleteRelation result = CompleteRelation.from(source); Assert.assertEquals(source.getIdentifier(), result.getIdentifier()); Assert.assertEquals(source.bounds(), result.bounds()); Assert.assertEquals(source.members().asBean(), result.members().asBean()); Assert.assertEquals(source.allKnownOsmMembers().asBean(), result.allKnownOsmMembers().asBean()); Assert.assertEquals(source.osmRelationIdentifier(), result.osmRelationIdentifier()); Assert.assertEquals( source.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet()), result.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet())); }
@Test public void testShallow() { final Atlas atlas = this.rule.getAtlas(); final Relation source = atlas.relation(22); final CompleteRelation result = CompleteRelation.shallowFrom(source); Assert.assertEquals(source.getIdentifier(), result.getIdentifier()); Assert.assertEquals(source.bounds(), result.bounds()); result.withMembersAndSource(new RelationMemberList(source.members()), source); Assert.assertEquals(source.members().asBean(), result.members().asBean()); result.withMembersAndSource(source.members().asBean(), source, source.bounds()); Assert.assertEquals(source.bounds(), result.bounds()); Assert.assertEquals(source.members().asBean(), result.members().asBean()); result.withAllKnownOsmMembers(source.allKnownOsmMembers().asBean()); Assert.assertEquals(source.allKnownOsmMembers().asBean(), result.allKnownOsmMembers().asBean()); result.withOsmRelationIdentifier(source.osmRelationIdentifier()); Assert.assertEquals(source.osmRelationIdentifier(), result.osmRelationIdentifier()); result.withRelationIdentifiers(source.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet())); Assert.assertEquals( source.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet()), result.relations().stream().map(Relation::getIdentifier) .collect(Collectors.toSet())); } }
@Test public void testSlicedRelation() { final Relation relation1 = this.multi.relation(1L); final RelationMemberList members = relation1.members(); Assert.assertEquals(4, members.size()); for (int i = 0; i < members.size(); i++) { Assert.assertTrue(members.get(i) != null); } // Members are ordered by entity type and ascending member identifier Assert.assertEquals(4, members.get(0).getEntity().getIdentifier()); Assert.assertEquals(1234, members.get(1).getEntity().getIdentifier()); Assert.assertEquals(-9, members.get(2).getEntity().getIdentifier()); Assert.assertEquals(9, members.get(3).getEntity().getIdentifier()); final Relation relation2 = this.multi.relation(2L); final RelationMemberList allMembers2 = relation2.allKnownOsmMembers(); final Relation relation3 = this.multi.relation(3L); final RelationMemberList allMembers3 = relation3.allKnownOsmMembers(); Assert.assertEquals(8, allMembers2.size()); Assert.assertEquals(8, allMembers3.size()); }
Assert.assertEquals(5, relation2.allKnownOsmMembers().size());