public final class Relation extends OsmPrimitive implements IRelation
AbstractPrimitive.KeyValueVisitor| Modifier and Type | Field and Description |
|---|---|
private BBox |
bbox |
private RelationMember[] |
members |
directionalKeyPredicate, FLAG_ANNOTATED, FLAG_DIRECTION_REVERSED, FLAG_DISABLED, FLAG_DISABLED_TYPE, FLAG_HAS_DIRECTIONS, FLAG_HIDDEN_TYPE, FLAG_HIDE_IF_DISABLED, FLAG_HIGHLIGHTED, FLAG_TAGGED, isSelectablePredicate, isUsablePredicate, mappaintCacheIdx, mappaintStyle, modifiedPredicate, multipolygonPredicate, nodePredicate, nonDeletedCompletePredicate, nonDeletedPhysicalPredicate, nonDeletedPredicate, relationPredicate, wayPredicatechangesetId, FLAG_DELETED, FLAG_INCOMPLETE, FLAG_MODIFIED, FLAG_VISIBLE, flags, id, keys, timestamp, user, version| Modifier | Constructor and Description |
|---|---|
|
Relation()
Create a new relation with id 0
|
|
Relation(long id)
Creates a new relation for the given id.
|
protected |
Relation(long id,
boolean allowNegative) |
|
Relation(long id,
int version)
Creates new relation
|
|
Relation(Relation clone)
Create an identical clone of the argument (including the id)
|
|
Relation(Relation clone,
boolean clearMetadata)
Constructs an identical clone of the argument.
|
| Modifier and Type | Method and Description |
|---|---|
void |
accept(PrimitiveVisitor visitor)
Makes the given visitor visit this primitive.
|
void |
accept(Visitor visitor)
Implementation of the visitor scheme.
|
void |
addMember(int index,
RelationMember member) |
void |
addMember(RelationMember member) |
private BBox |
calculateBBox(java.util.Set<PrimitiveId> visitedRelations) |
private void |
checkMembers() |
void |
cloneFrom(OsmPrimitive osm)
Get and write all attributes from the parameter.
|
int |
compareTo(OsmPrimitive o) |
boolean |
concernsArea()
Determines if this primitive semantically concerns an area.
|
private void |
fireMembersChanged() |
RelationMember |
firstMember()
Returns the first member.
|
BBox |
getBBox()
Fetch the bounding box of the primitive
|
java.lang.String |
getDisplayName(NameFormatter formatter)
Replies the display name of a primitive formatted by
formatter |
OsmPrimitiveType |
getDisplayType() |
java.util.Collection<OsmPrimitive> |
getIncompleteMembers()
Replies a collection with the incomplete children this relation refers to.
|
RelationMember |
getMember(int index) |
long |
getMemberId(int idx)
Returns id of the member at given index.
|
java.util.Set<OsmPrimitive> |
getMemberPrimitives()
Replies the set of
OsmPrimitives referred to by at least one
member of this relation |
<T extends OsmPrimitive> |
getMemberPrimitives(java.lang.Class<T> tClass) |
java.util.List<OsmPrimitive> |
getMemberPrimitivesList() |
java.util.Set<java.lang.String> |
getMemberRoles()
Returns the set of roles used in this relation.
|
java.util.List<RelationMember> |
getMembers() |
int |
getMembersCount()
Returns the number of members.
|
java.util.Collection<RelationMember> |
getMembersFor(java.util.Collection<? extends OsmPrimitive> primitives)
Obtains all members with member.member == primitive
|
OsmPrimitiveType |
getMemberType(int idx)
Returns type of the member at given index.
|
java.lang.String |
getRole(int idx)
Returns role of the member at given index.
|
OsmPrimitiveType |
getType()
Gets the type of object represented by this object.
|
boolean |
hasEqualSemanticAttributes(OsmPrimitive other,
boolean testInterestingTagsOnly) |
boolean |
hasIncompleteMembers()
Determines if at least one child primitive is incomplete.
|
boolean |
isBoundary()
Determines if this relation is a boundary.
|
boolean |
isMultipolygon()
Determines if this relation behaves as a multipolygon.
|
boolean |
isOutsideDownloadArea()
Tests if this primitive lies outside of the downloaded area of its
DataSet. |
protected void |
keysChangedImpl(java.util.Map<java.lang.String,java.lang.String> originalKeys)
What to do, when the tags have changed by one of the tag-changing methods.
|
RelationMember |
lastMember()
Returns the last member.
|
void |
load(PrimitiveData data)
Loads (clone) this primitive from provided PrimitiveData
|
RelationMember |
removeMember(int index)
Removes member at specified position.
|
void |
removeMembersFor(java.util.Collection<? extends OsmPrimitive> primitives)
removes all members with member.member == primitive
|
void |
removeMembersFor(OsmPrimitive primitive)
removes all members with member.member == primitive
|
RelationData |
save()
Save parameters of this primitive to the transport object
|
(package private) void |
setDataset(DataSet dataSet)
This method should never ever by called from somewhere else than Dataset.addPrimitive or removePrimitive methods
|
void |
setDeleted(boolean deleted)
Sets whether this primitive is deleted or not.
|
RelationMember |
setMember(int index,
RelationMember member)
Replace member at position specified by index.
|
void |
setMembers(java.util.List<RelationMember> members) |
java.lang.String |
toString() |
void |
updatePosition()
Called by Dataset to update cached position information of primitive (bbox, cached EarthNorth, ...)
|
addReferrer, checkDataset, clearCachedStyle, clearOsmMetadata, equals, evaluateCondition, getDataSet, getDisabledType, getDiscardableKeys, getFilteredList, getFilteredSet, getFlagsAsString, getHiddenType, getInterestingTags, getParentRelations, getReferrer, getReferrers, getReferrers, getTemplateKeys, getTemplateValue, getUninterestingKeys, getWorkInProgressKeys, hasAreaTags, hasDirectionKeys, hasEqualSemanticAttributes, hasEqualTechnicalAttributes, hashCode, hasSameInterestingTags, isAnnotated, isDisabled, isDisabledAndHidden, isDrawable, isHighlighted, isMemberOfSelected, isOuterMemberOfSelected, isReferredByWays, isSelectable, isSelected, isTagged, isUninterestingKey, mergeFrom, put, remove, removeAll, removeReferrer, reversedDirection, saveCommonAttributes, setChangesetId, setDisabledState, setDisabledType, setHiddenType, setHighlighted, setIncomplete, setKeys, setKeys, setModified, setOsmId, setTimestamp, setUser, setVisible, unsetDisabledState, updateFlags, visitReferrers, writeLock, writeUnlockcloneFrom, generateUniqueId, get, getChangesetId, getId, getIgnoreCase, getKeys, getLocalName, getName, getNumKeys, getPrimitiveId, getRawTimestamp, getTimestamp, getUniqueId, getUser, getVersion, hasKey, hasKeys, hasTag, hasTag, hasTag, isDeleted, isIncomplete, isKeyFalse, isKeyTrue, isModified, isNew, isNewOrUndeleted, isTimestampEmpty, isUndeleted, isUsable, isVisible, keySet, setRawTimestamp, visitKeysclone, finalize, getClass, notify, notifyAll, wait, wait, waitgetChangesetId, getId, getLocalName, getName, getPrimitiveId, getRawTimestamp, getTimestamp, getUser, getVersion, isDeleted, isIncomplete, isModified, isNewOrUndeleted, isTimestampEmpty, isUndeleted, isUsable, isVisible, setChangesetId, setModified, setOsmId, setRawTimestamp, setTimestamp, setUser, setVisibleget, getKeys, hasKeys, keySet, put, remove, removeAll, setKeysgetUniqueId, isNewprivate RelationMember[] members
protected Relation(long id, boolean allowNegative)
public Relation()
public Relation(Relation clone, boolean clearMetadata)
clone - The relation to cloneclearMetadata - If true, clears the OSM id and other metadata as defined by OsmPrimitive.clearOsmMetadata().
If false, does nothingpublic Relation(Relation clone)
clone - The relation to clone, including its idpublic Relation(long id)
id - the id. > 0 requiredjava.lang.IllegalArgumentException - if id < 0public Relation(long id, int version)
id - the idversion - version number (positive integer)public java.util.List<RelationMember> getMembers()
public void setMembers(java.util.List<RelationMember> members)
members - Can be null, in that case all members are removedpublic int getMembersCount()
IRelationgetMembersCount in interface IRelationpublic RelationMember getMember(int index)
public void addMember(RelationMember member)
public void addMember(int index, RelationMember member)
public RelationMember setMember(int index, RelationMember member)
index - index (positive integer)member - relation member to setpublic RelationMember removeMember(int index)
index - index (positive integer)public long getMemberId(int idx)
IRelationgetMemberId in interface IRelationidx - member indexpublic java.lang.String getRole(int idx)
IRelationpublic OsmPrimitiveType getMemberType(int idx)
IRelationgetMemberType in interface IRelationidx - member indexpublic void accept(Visitor visitor)
OsmPrimitiveaccept in class OsmPrimitivevisitor - The visitor from which the visit() function must be called.public void accept(PrimitiveVisitor visitor)
IPrimitiveaccept in interface IPrimitivevisitor - visitorpublic void cloneFrom(OsmPrimitive osm)
OsmPrimitivecloneFrom in class OsmPrimitiveosm - other primitivepublic void load(PrimitiveData data)
OsmPrimitiveload in class OsmPrimitivedata - The object which should be clonedpublic RelationData save()
OsmPrimitivesave in class OsmPrimitivepublic java.lang.String toString()
toString in class java.lang.Objectpublic boolean hasEqualSemanticAttributes(OsmPrimitive other, boolean testInterestingTagsOnly)
hasEqualSemanticAttributes in class OsmPrimitivepublic int compareTo(OsmPrimitive o)
compareTo in interface java.lang.Comparable<OsmPrimitive>public RelationMember firstMember()
nullpublic RelationMember lastMember()
nullpublic void removeMembersFor(OsmPrimitive primitive)
primitive - the primitive to check forpublic void setDeleted(boolean deleted)
IPrimitivesetDeleted in interface IPrimitivesetDeleted in class OsmPrimitivedeleted - true, if this primitive is deleted; false, otherwisepublic java.util.Collection<RelationMember> getMembersFor(java.util.Collection<? extends OsmPrimitive> primitives)
primitives - the primitives to check forpublic void removeMembersFor(java.util.Collection<? extends OsmPrimitive> primitives)
primitives - the primitives to check forpublic java.lang.String getDisplayName(NameFormatter formatter)
OsmPrimitiveformattergetDisplayName in class OsmPrimitiveformatter - formatter to usepublic java.util.Set<OsmPrimitive> getMemberPrimitives()
OsmPrimitives referred to by at least one
member of this relationOsmPrimitives referred to by at least one
member of this relationpublic <T extends OsmPrimitive> java.util.Collection<T> getMemberPrimitives(java.lang.Class<T> tClass)
public java.util.List<OsmPrimitive> getMemberPrimitivesList()
public OsmPrimitiveType getType()
PrimitiveIdgetType in interface PrimitiveIdNode,
Way,
Relationpublic OsmPrimitiveType getDisplayType()
getDisplayType in class AbstractPrimitivepublic boolean isBoundary()
true if a boundary relationpublic boolean isMultipolygon()
true if it's a real mutlipolygon or a boundary relationpublic BBox getBBox()
OsmPrimitivegetBBox in class OsmPrimitiveprivate BBox calculateBBox(java.util.Set<PrimitiveId> visitedRelations)
public void updatePosition()
OsmPrimitiveupdatePosition in class OsmPrimitivevoid setDataset(DataSet dataSet)
OsmPrimitivesetDataset in class OsmPrimitivedataSet - the parent datasetprivate void checkMembers() throws DataIntegrityProblemException
DataIntegrityProblemExceptionprivate void fireMembersChanged() throws DataIntegrityProblemException
DataIntegrityProblemExceptionpublic boolean hasIncompleteMembers()
public java.util.Collection<OsmPrimitive> getIncompleteMembers()
protected void keysChangedImpl(java.util.Map<java.lang.String,java.lang.String> originalKeys)
AbstractPrimitivekeysChangedImpl in class OsmPrimitiveoriginalKeys - original tagspublic boolean concernsArea()
OsmPrimitiveconcernsArea in class OsmPrimitivetrue if this primitive semantically concerns an area, according to its type, geometry and tags, false otherwise.public boolean isOutsideDownloadArea()
OsmPrimitiveDataSet.isOutsideDownloadArea in class OsmPrimitivetrue if this primitive lies outside of the downloaded areapublic java.util.Set<java.lang.String> getMemberRoles()