public final class Relation extends OsmPrimitive implements IRelation
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() |
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.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()
Replies true 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() |
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
|
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, 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, getTimestamp, getUniqueId, getUser, getVersion, hasKey, hasKeys, hasTag, hasTag, hasTag, isDeleted, isIncomplete, isKeyFalse, isKeyTrue, isModified, isNew, isNewOrUndeleted, isTimestampEmpty, isUndeleted, isUsable, isVisible, keySet, setModified
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
getChangesetId, getId, getLocalName, getName, getPrimitiveId, getTimestamp, getUser, getVersion, isDeleted, isIncomplete, isModified, isNewOrUndeleted, isTimestampEmpty, isVisible, setChangesetId, setModified, setOsmId, 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) throws java.lang.IllegalArgumentException
id
- the id. > 0 requiredjava.lang.IllegalArgumentException
- thrown if id < 0public Relation(long id, int version)
id
- version
- 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
- member
- public RelationMember removeMember(int index)
index
- 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
public int compareTo(OsmPrimitive o)
compareTo
in interface java.lang.Comparable<OsmPrimitive>
public RelationMember firstMember()
public RelationMember lastMember()
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
public void setDataset(DataSet dataSet)
OsmPrimitive
setDataset
in class OsmPrimitive
private 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 area