public final class Relation extends OsmPrimitive implements IRelation<RelationMember>
| Modifier and Type | Field and Description |
|---|---|
private BBox |
bbox |
private RelationMember[] |
members |
directionKeyschangesetId, FLAG_ANNOTATED, FLAG_DELETED, FLAG_DIRECTION_REVERSED, FLAG_DISABLED, FLAG_DISABLED_TYPE, FLAG_HAS_DIRECTIONS, FLAG_HIDDEN_TYPE, FLAG_HIDE_IF_DISABLED, FLAG_HIGHLIGHTED, FLAG_INCOMPLETE, FLAG_MODIFIED, FLAG_PRESERVED, FLAG_TAGGED, FLAG_VISIBLE, flags, id, keys, timestamp, user, versionMAX_TAG_LENGTH| 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(OsmPrimitiveVisitor visitor)
Implementation of the visitor scheme.
|
void |
accept(PrimitiveVisitor visitor)
Makes the given visitor visit this primitive.
|
void |
addMember(int index,
RelationMember member)
Adds the specified relation member at the specified index.
|
void |
addMember(RelationMember member)
Adds the specified relation member at the last position.
|
protected void |
addToBBox(BBox box,
java.util.Set<PrimitiveId> visited)
If necessary, extend the bbox to contain this primitive
|
private void |
checkMembers()
Checks that members are part of the same dataset, and that they're not deleted.
|
void |
cloneFrom(OsmPrimitive osm)
Get and write all attributes from the parameter.
|
boolean |
concernsArea()
Determines if this primitive semantically concerns an area.
|
java.util.List<? extends OsmPrimitive> |
findRelationMembers(java.lang.String role)
Returns a list of relation members having the specified role.
|
private void |
fireMembersChanged()
Fires the
RelationMembersChangedEvent to listeners. |
RelationMember |
firstMember()
Returns the first member.
|
BBox |
getBBox()
Fetches the bounding box of the primitive.
|
OsmPrimitiveType |
getDisplayType()
Gets the type this primitive is displayed at
|
java.util.Collection<OsmPrimitive> |
getIncompleteMembers()
Replies a collection with the incomplete children this relation refers to.
|
RelationMember |
getMember(int index)
Returns the relation member at the specified 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)
Returns the
OsmPrimitives of the specified type referred to by at least one member of this relation. |
java.util.List<OsmPrimitive> |
getMemberPrimitivesList()
Returns an unmodifiable list of the
OsmPrimitives referred to by at least one member of this relation. |
java.util.Set<java.lang.String> |
getMemberRoles()
Returns the set of roles used in this relation.
|
java.util.List<RelationMember> |
getMembers()
Returns members of the relation.
|
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 |
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
|
private void |
setBBox(BBox bbox) |
(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)
Sets members of the relation.
|
java.lang.String |
toString() |
void |
updatePosition()
Called by Dataset to update cached position information of primitive (bbox, cached EarthNorth, ...)
|
addReferrer, checkDataset, checkDatasetNotReadOnly, clearOsmMetadata, declareCachedStyleUpToDate, equals, evaluateCondition, getCachedStyle, getDataSet, getDisabledType, getFlagsAsString, getHiddenType, getParentRelations, getReferrer, getReferrers, getReferrers, getTemplateKeys, getTemplateValue, hasAreaTags, hasDirectionKeys, hasEqualSemanticAttributes, hasEqualSemanticFlags, hasEqualTechnicalAttributes, hashCode, isAnnotated, isCachedStyleUpToDate, isDisabled, isDisabledAndHidden, isDrawable, isHighlighted, isMemberOfSelected, isNodeReferredByWays, isOuterMemberOfSelected, isPreserved, isSelectable, isSelected, isTagged, mergeFrom, put, referrers, remove, removeAll, removeReferrer, reversedDirection, saveCommonAttributes, setCachedStyle, setChangesetId, setDisabledState, setDisabledType, setHiddenType, setHighlighted, setIncomplete, setKeys, setKeys, setModified, setOsmId, setPreserved, setTimestamp, setUser, setVisible, unsetDisabledState, updateFlags, visitReferrers, visitReferrers, writeLock, writeUnlockadvanceUniqueId, cloneFrom, currentUniqueId, doGet, generateUniqueId, get, getChangesetId, getDiscardableKeys, getId, getIgnoreCase, getInterestingTags, getKeys, getNumKeys, getRawTimestamp, getTimestamp, getUninterestingKeys, getUniqueId, getUser, getVersion, getWorkInProgressKeys, hasKey, hasKey, hasKeys, isDeleted, isIncomplete, isModified, isNew, isNewOrUndeleted, isTimestampEmpty, isUndeleted, isUninterestingKey, isUsable, isVisible, keySet, setRawTimestamp, visitKeysclone, finalize, getClass, notify, notifyAll, wait, wait, waitcompareTo, getDisplayName, isBoundary, isMultipolygongetChangesetId, getDataSet, getId, getInterestingTags, getLocalName, getName, getOsmId, getOsmPrimitiveId, getPrimitiveId, getRawTimestamp, getReferrers, getReferrers, getTimestamp, getUser, getVersion, hasDirectionKeys, hasSameInterestingTags, isAnnotated, isDeleted, isDisabled, isDisabledAndHidden, isDrawable, isHighlighted, isIncomplete, isMemberOfSelected, isModified, isNewOrUndeleted, isOuterMemberOfSelected, isPreserved, isSelectable, isSelected, isTagged, isTimestampEmpty, isUndeleted, isUsable, isVisible, reversedDirection, setChangesetId, setHighlighted, setModified, setOsmId, setRawTimestamp, setTimestamp, setUser, setVisible, visitReferrersget, getKeys, getNumKeys, hasKey, hasKeys, hasTag, hasTag, hasTag, hasTag, hasTagDifferent, hasTagDifferent, hasTagDifferent, isKeyFalse, isKeyTrue, keySet, put, put, remove, removeAll, setKeys, visitKeysgetUniqueId, isNewclearCachedStyle, declareCachedStyleUpToDate, getCachedStyle, isCachedStyleUpToDate, setCachedStyleprivate 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()
IRelationgetMembers in interface IRelation<RelationMember>IRelation.setMembers(java.util.List<M>) to modify the memberspublic void setMembers(java.util.List<RelationMember> members)
IRelationsetMembers in interface IRelation<RelationMember>members - Can be null, in that case all members are removedpublic int getMembersCount()
IRelationgetMembersCount in interface IRelation<RelationMember>public RelationMember getMember(int index)
IRelationgetMember in interface IRelation<RelationMember>index - the index of the relation memberpublic void addMember(RelationMember member)
member - the member to addpublic void addMember(int index, RelationMember member)
member - the member to addindex - the index at which the specified element is to be insertedpublic 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 IRelation<RelationMember>idx - member indexpublic java.lang.String getRole(int idx)
IRelationgetRole in interface IRelation<RelationMember>idx - member indexpublic OsmPrimitiveType getMemberType(int idx)
IRelationgetMemberType in interface IRelation<RelationMember>idx - member indexpublic void accept(OsmPrimitiveVisitor 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 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.util.Set<OsmPrimitive> getMemberPrimitives()
OsmPrimitives referred to by at least one
member of this relationOsmPrimitives referred to by at least one
member of this relationgetMemberPrimitivesList()public <T extends OsmPrimitive> java.util.Collection<T> getMemberPrimitives(java.lang.Class<T> tClass)
OsmPrimitives of the specified type referred to by at least one member of this relation.T - the type of the primitivetClass - the type of the primitivepublic java.util.List<OsmPrimitive> getMemberPrimitivesList()
OsmPrimitives referred to by at least one member of this relation.getMemberPrimitivesList in interface IRelation<RelationMember>public OsmPrimitiveType getType()
PrimitiveIdgetType in interface PrimitiveIdNode,
Way,
Relationpublic OsmPrimitiveType getDisplayType()
IPrimitivegetDisplayType in interface IPrimitiveOsmPrimitiveTypepublic BBox getBBox()
IPrimitivegetBBox in interface IPrimitiveprotected void addToBBox(BBox box, java.util.Set<PrimitiveId> visited)
OsmPrimitiveaddToBBox in class OsmPrimitivebox - a bbox instancevisited - a set of visited members or nullpublic void updatePosition()
OsmPrimitiveupdatePosition in class OsmPrimitivevoid setDataset(DataSet dataSet)
OsmPrimitivesetDataset in class OsmPrimitivedataSet - the parent datasetprivate void checkMembers()
DataIntegrityProblemException - if one the above conditions is not metprivate void fireMembersChanged()
RelationMembersChangedEvent to listeners.DataIntegrityProblemException - if members are not validcheckMembers()public boolean hasIncompleteMembers()
IRelationhasIncompleteMembers in interface IRelation<RelationMember>public java.util.Collection<OsmPrimitive> getIncompleteMembers()
getIncompleteMembers in interface IRelation<RelationMember>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()
public java.util.List<? extends OsmPrimitive> findRelationMembers(java.lang.String role)
IRelationfindRelationMembers in interface IRelation<RelationMember>role - role