private MultiAtlas multiAtlas() { return (MultiAtlas) this.getAtlas(); } }
@Override public Set<Relation> relations() { Set<Relation> unionOfAllParentRelations = new HashSet<>(); for (final Point subPoint : getSubPoints().getSubPoints()) { final Set<Relation> currentSubPointParentRelations = multiAtlas() .multifyRelations(subPoint); unionOfAllParentRelations = Sets.union(unionOfAllParentRelations, currentSubPointParentRelations); } return unionOfAllParentRelations; }
@Override public Map<String, String> getTags() { return this.getRepresentativeSubPoint().getTags(); }
@Override public Point point(final long identifier) { if (this.pointIdentifierToAtlasIndices.containsKey(identifier)) { return new MultiPoint(this, identifier); } return null; }
public SubPointList getSubPoints() { if (this.subPoints == null) { this.subPoints = multiAtlas().subPoints(this.identifier); } return this.subPoints; }
private Point getRepresentativeSubPoint() { return getSubPoints().getSubPoints().get(0); }
@Override public Location getLocation() { return getRepresentativeSubPoint().getLocation(); }