public final class Relation extends OsmPrimitive implements IRelation<RelationMember>
Modifier and Type | Field and Description |
---|---|
private BBox |
bbox |
private RelationMember[] |
members |
directionKeys
changesetId, 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, version
MAX_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.
|
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
OsmPrimitive s referred to by at least one
member of this relation |
<T extends OsmPrimitive> |
getMemberPrimitives(java.lang.Class<T> tClass)
Returns the
OsmPrimitive s 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
OsmPrimitive s 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, writeUnlock
advanceUniqueId, 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, visitKeys
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
compareTo, getDisplayName, isBoundary, isMultipolygon
getChangesetId, 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, visitReferrers
get, getKeys, getNumKeys, hasKey, hasKeys, hasTag, hasTag, hasTag, hasTag, hasTagDifferent, hasTagDifferent, hasTagDifferent, isKeyFalse, isKeyTrue, keySet, put, put, remove, removeAll, setKeys, visitKeys
getUniqueId, isNew
clearCachedStyle, declareCachedStyleUpToDate, getCachedStyle, isCachedStyleUpToDate, setCachedStyle
private 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()
IRelation
getMembers
in interface IRelation<RelationMember>
IRelation.setMembers(java.util.List<M>)
to modify the memberspublic void setMembers(java.util.List<RelationMember> members)
IRelation
setMembers
in interface IRelation<RelationMember>
members
- Can be null, in that case all members are removedpublic int getMembersCount()
IRelation
getMembersCount
in interface IRelation<RelationMember>
public RelationMember getMember(int index)
IRelation
getMember
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)
IRelation
getMemberId
in interface IRelation<RelationMember>
idx
- member indexpublic java.lang.String getRole(int idx)
IRelation
getRole
in interface IRelation<RelationMember>
idx
- member indexpublic OsmPrimitiveType getMemberType(int idx)
IRelation
getMemberType
in interface IRelation<RelationMember>
idx
- member indexpublic void accept(OsmPrimitiveVisitor visitor)
OsmPrimitive
accept
in class OsmPrimitive
visitor
- The visitor from which the visit() function must be called.public void accept(PrimitiveVisitor visitor)
IPrimitive
accept
in interface IPrimitive
visitor
- visitorpublic void cloneFrom(OsmPrimitive osm)
OsmPrimitive
cloneFrom
in class OsmPrimitive
osm
- other primitivepublic void load(PrimitiveData data)
OsmPrimitive
load
in class OsmPrimitive
data
- The object which should be clonedpublic RelationData save()
OsmPrimitive
save
in class OsmPrimitive
public java.lang.String toString()
toString
in class java.lang.Object
public boolean hasEqualSemanticAttributes(OsmPrimitive other, boolean testInterestingTagsOnly)
hasEqualSemanticAttributes
in class OsmPrimitive
public RelationMember firstMember()
null
public RelationMember lastMember()
null
public void removeMembersFor(OsmPrimitive primitive)
primitive
- the primitive to check forpublic void setDeleted(boolean deleted)
IPrimitive
setDeleted
in interface IPrimitive
setDeleted
in class OsmPrimitive
deleted
- 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()
OsmPrimitive
s referred to by at least one
member of this relationOsmPrimitive
s referred to by at least one
member of this relationgetMemberPrimitivesList()
public <T extends OsmPrimitive> java.util.Collection<T> getMemberPrimitives(java.lang.Class<T> tClass)
OsmPrimitive
s 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()
OsmPrimitive
s referred to by at least one member of this relation.getMemberPrimitivesList
in interface IRelation<RelationMember>
public OsmPrimitiveType getType()
PrimitiveId
getType
in interface PrimitiveId
Node
,
Way
,
Relation
public OsmPrimitiveType getDisplayType()
IPrimitive
getDisplayType
in interface IPrimitive
OsmPrimitiveType
public BBox getBBox()
IPrimitive
getBBox
in interface IPrimitive
protected void addToBBox(BBox box, java.util.Set<PrimitiveId> visited)
OsmPrimitive
addToBBox
in class OsmPrimitive
box
- a bbox instancevisited
- a set of visited members or nullpublic void updatePosition()
OsmPrimitive
updatePosition
in class OsmPrimitive
void setDataset(DataSet dataSet)
OsmPrimitive
setDataset
in class OsmPrimitive
dataSet
- 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()
IRelation
hasIncompleteMembers
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)
AbstractPrimitive
keysChangedImpl
in class OsmPrimitive
originalKeys
- original tagspublic boolean concernsArea()
OsmPrimitive
concernsArea
in class OsmPrimitive
true
if this primitive semantically concerns an area, according to its type, geometry and tags, false
otherwise.public boolean isOutsideDownloadArea()
OsmPrimitive
DataSet
.isOutsideDownloadArea
in class OsmPrimitive
true
if this primitive lies outside of the downloaded areapublic java.util.Set<java.lang.String> getMemberRoles()