@Override public List<Relation> allRelationsWithSameOsmIdentifier() { return multiAtlas().relationAllRelationsWithSameOsmIdentifier(this.identifier); }
private SubRelationList getSubRelations() { if (this.subRelations == null) { this.subRelations = this.multiAtlas().subRelations(this.identifier); } return this.subRelations; }
@Override public Set<Relation> relations() { Set<Relation> unionOfAllParentRelations = new HashSet<>(); for (final Relation subRelations : getSubRelations().getSubRelations()) { final Set<Relation> currentSubRelationParentRelations = multiAtlas() .multifyRelations(subRelations); unionOfAllParentRelations = Sets.union(unionOfAllParentRelations, currentSubRelationParentRelations); } return unionOfAllParentRelations; }
@Override public RelationMemberList allKnownOsmMembers() { final List<RelationMember> members = new ArrayList<>(); for (final Relation candidate : multiAtlas() .relationAllRelationsWithSameOsmIdentifier(this.identifier)) { candidate.members().forEach(relationMember -> members.add(relationMember)); } return new RelationMemberList(members); }
final SubRelationList subRelations = getSubRelations(); final boolean hasFixEdges = subRelations.hasFixRelation(); final MultiMapWithSet<Long, Long> relationIdentifiersToRemovedEdgeMembers = multiAtlas() .getRelationIdentifiersToRemovedEdgeMembers(); for (final Relation subRelation : subRelations.getSubRelations()) if (nonMulti instanceof Node) multiEntity = multiAtlas().node(identifier); multiEntity = multiAtlas().edge(identifier); multiEntity = multiAtlas().area(identifier); multiEntity = multiAtlas().line(identifier); multiEntity = multiAtlas().point(identifier); multiEntity = multiAtlas().relation(identifier); if (nonMulti instanceof Edge) multiEntity = multiAtlas().edge(identifier);