public final class Relation extends OsmPrimitive implements IRelation
AbstractPrimitive.KeyValueVisitor
Modifier and Type | Field and Description |
---|---|
private BBox |
bbox |
private RelationMember[] |
members |
allPredicate, 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, wayPredicate
changesetId, 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) |
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) |
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) |
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() |
java.util.Collection<RelationMember> |
getMembersFor(java.util.Collection<? extends OsmPrimitive> primitives)
Obtains all members with member.member == primitive
|
OsmPrimitiveType |
getMemberType(int idx) |
java.lang.String |
getRole(int idx) |
OsmPrimitiveType |
getType()
Gets the type of object represented by this object.
|
boolean |
hasEqualSemanticAttributes(OsmPrimitive other)
Replies true if this primitive and other are equal with respect to their semantic attributes.
|
boolean |
hasIncompleteMembers()
Determines if at least one child primitive is incomplete.
|
boolean |
isMultipolygon() |
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, 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, setOsmId, setTimestamp, setUser, setVisible, unsetDisabledState, updateFlags, visitReferrers, writeLock, writeUnlock
cloneFrom, 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, setModified, setRawTimestamp, visitKeys
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getChangesetId, getId, getLocalName, getName, getPrimitiveId, getRawTimestamp, getTimestamp, getUser, getVersion, isDeleted, isIncomplete, isModified, isNewOrUndeleted, isTimestampEmpty, isVisible, setChangesetId, setModified, setOsmId, setRawTimestamp, setTimestamp, setUser, setVisible
get, getKeys, hasKeys, keySet, put, remove, removeAll, setKeys
getUniqueId, isNew
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()
public void setMembers(java.util.List<RelationMember> members)
members
- Can be null, in that case all members are removedpublic int getMembersCount()
getMembersCount
in interface IRelation
public 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)
getMemberId
in interface IRelation
public OsmPrimitiveType getMemberType(int idx)
getMemberType
in interface IRelation
public void accept(Visitor visitor)
OsmPrimitive
accept
in class OsmPrimitive
visitor
- The visitor from which the visit() function must be called.public void accept(PrimitiveVisitor visitor)
accept
in interface IPrimitive
public void cloneFrom(OsmPrimitive osm)
OsmPrimitive
cloneFrom
in class OsmPrimitive
public 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)
OsmPrimitive
hasEqualSemanticAttributes
in class OsmPrimitive
other
- other primitive to comparepublic int compareTo(OsmPrimitive o)
compareTo
in interface java.lang.Comparable<OsmPrimitive>
public RelationMember firstMember()
null
public RelationMember lastMember()
null
public void removeMembersFor(OsmPrimitive primitive)
primitive
- the primitive to check forpublic void setDeleted(boolean deleted)
AbstractPrimitive
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.lang.String getDisplayName(NameFormatter formatter)
OsmPrimitive
formatter
getDisplayName
in class OsmPrimitive
public 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 relationpublic <T extends OsmPrimitive> java.util.Collection<T> getMemberPrimitives(java.lang.Class<T> tClass)
public java.util.List<OsmPrimitive> getMemberPrimitivesList()
public OsmPrimitiveType getType()
PrimitiveId
getType
in interface PrimitiveId
Node
,
Way
,
Relation
public OsmPrimitiveType getDisplayType()
getDisplayType
in class AbstractPrimitive
public boolean isMultipolygon()
public BBox getBBox()
OsmPrimitive
getBBox
in class OsmPrimitive
private BBox calculateBBox(java.util.Set<PrimitiveId> visitedRelations)
public void updatePosition()
OsmPrimitive
updatePosition
in class OsmPrimitive
void setDataset(DataSet dataSet)
OsmPrimitive
setDataset
in class OsmPrimitive
dataSet
- the parent datasetprivate void checkMembers() throws DataIntegrityProblemException
DataIntegrityProblemException
private void fireMembersChanged() throws DataIntegrityProblemException
DataIntegrityProblemException
public boolean hasIncompleteMembers()
public java.util.Collection<OsmPrimitive> getIncompleteMembers()
protected void keysChangedImpl(java.util.Map<java.lang.String,java.lang.String> originalKeys)
AbstractPrimitive
keysChangedImpl
in class OsmPrimitive
public 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()