@Override protected Long compress(final Relation item) { return item.getIdentifier(); }
protected long getIdentifier() { return this.relation.getIdentifier(); }
boolean relationCovered(final Relation relation) { final Set<Long> parentRelationIdentifierTree = new HashSet<>(); parentRelationIdentifierTree.add(relation.getIdentifier()); return relationCoveredInternal(relation, parentRelationIdentifierTree); }
private DynamicRelation newRelation(final Relation relation) { return new DynamicRelation(this, relation.getIdentifier()); } }
private boolean relationCoversInitialShardBounds(final Relation relation) { final Set<Long> parentRelationIdentifierTree = new HashSet<>(); parentRelationIdentifierTree.add(relation.getIdentifier()); return relationCoversInitialShardBoundsInternal(relation, parentRelationIdentifierTree); }
@Override public List<Relation> allRelationsWithSameOsmIdentifier() { return attribute(Relation::allRelationsWithSameOsmIdentifier).stream() .map(relation -> getChangeAtlas().relation(relation.getIdentifier())) .collect(Collectors.toList()); }
@Override public List<Relation> allRelationsWithSameOsmIdentifier() { return subRelation().allRelationsWithSameOsmIdentifier().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toList()); }
@Override public Set<Relation> relations() { return subLine().relations().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toSet()); }
@Override public Set<Relation> relations() { return subEdge().relations().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toSet()); }
@Override public Set<Relation> relations() { return subNode().relations().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toSet()); }
@Override public Set<Relation> relations() { return subPoint().relations().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toSet()); }
@Override public Set<Relation> relations() { return subArea().relations().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toSet()); }
@Override public Set<Relation> relations() { return subRelation().relations().stream() .map(relation -> new DynamicRelation(dynamicAtlas(), relation.getIdentifier())) .collect(Collectors.toSet()); }
@Override public LocationIterableProperties toGeoJsonBuildingBlock() { final Map<String, String> tags = getTags(); tags.put("identifier", String.valueOf(getIdentifier())); tags.put("osmIdentifier", String.valueOf(getOsmIdentifier())); tags.put("itemType", String.valueOf(getType())); tags.put("relation", this.toSimpleString()); final Optional<String> shardName = getAtlas().metaData().getShardName(); shardName.ifPresent(shard -> tags.put("shard", shard)); return new GeoJsonBuilder.LocationIterableProperties(bounds().center(), tags); }
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())); }
public static CompleteRelation shallowFrom(final Relation relation) { return new CompleteRelation(relation.getIdentifier()).withInitialBounds(relation.bounds()); }
protected String parentRelationsAsDiffViewFriendlyString() { final StringList relationIds = new StringList(); for (final Relation relation : this.relations()) { relationIds.add(relation.getIdentifier()); } final String relationsString = relationIds.join(","); return relationsString; }
private String convertRelation(final Relation item) { final StringList list = new StringList(); list.add(item.getIdentifier()); list.add(convertRelationBean(item)); list.add(convertTags(item)); return list.join(SEPARATOR); }
private AtlasPrimitiveRelation convert(final Relation relation) { final RelationBean bean = new RelationBean(); for (final RelationMember member : relation.members()) { bean.addItem(member.getEntity().getIdentifier(), member.getRole(), member.getEntity().getType()); } return new AtlasPrimitiveRelation(relation.getIdentifier(), relation.getIdentifier(), bean, relation.getTags(), relation.bounds()); }
private void addRelation(final PackedAtlasBuilder builder, final Relation relation) { final RelationBean bean = new RelationBean(); relation.members().forEach(member -> bean.addItem(member.getEntity().getIdentifier(), member.getRole(), member.getEntity().getType())); builder.addRelation(relation.getIdentifier(), relation.osmRelationIdentifier(), bean, relation.getTags()); } }