Class VectorWay
- java.lang.Object
-
- org.openstreetmap.josm.data.osm.AbstractPrimitive
-
- org.openstreetmap.josm.data.vector.VectorPrimitive
-
- org.openstreetmap.josm.data.vector.VectorWay
-
- All Implemented Interfaces:
java.lang.Comparable<IPrimitive>
,IQuadBucketType
,IFilterablePrimitive
,IPrimitive
,IWay<VectorNode>
,PrimitiveId
,Stylable
,Tagged
,DataLayer<java.lang.String>
public class VectorWay extends VectorPrimitive implements IWay<VectorNode>
The "Way" type for a Vector layer- Since:
- 17862
-
-
Field Summary
Fields Modifier and Type Field Description private BBox
cachedBBox
private java.util.List<VectorNode>
nodes
private static UniqueIdGenerator
WAY_GENERATOR
-
Fields inherited from class org.openstreetmap.josm.data.osm.AbstractPrimitive
changesetId, FLAG_ALL_REFERRERS_DOWNLOADED, 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, mappaintCacheIdx, timestamp, user, version
-
Fields inherited from interface org.openstreetmap.josm.data.osm.Tagged
MAX_TAG_LENGTH
-
-
Constructor Summary
Constructors Constructor Description VectorWay(java.lang.String layer)
Create a new way for a layer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
accept(PrimitiveVisitor visitor)
Makes the given visitor visit this primitive.VectorNode
firstNode()
Returns the first node of this way.BBox
getBBox()
Fetches the bounding box of the primitive.OsmPrimitiveType
getDisplayType()
Gets the type this primitive is displayed atUniqueIdGenerator
getIdGenerator()
Returns the unique identifier generator.VectorNode
getNode(int index)
Replies the node at positionindex
.long
getNodeId(int idx)
Returns id of the node at given index.java.util.List<java.lang.Long>
getNodeIds()
Returns the list of node ids in this way.java.util.List<VectorNode>
getNodes()
Returns the list of nodes in this way.int
getNodesCount()
Replies the number of nodes in this way.OsmPrimitiveType
getType()
Gets the type of object represented by this object.boolean
isClosed()
Determines if this way is closed.boolean
isFirstLastNode(INode n)
Replies true if the given node is the first or the last one of this way, false otherwise.boolean
isInnerNode(INode n)
Replies true if the given node is an inner node of this way, false otherwise.VectorNode
lastNode()
Returns the last node of this way.void
setNodes(java.util.List<VectorNode> nodes)
Set new list of nodes to way.-
Methods inherited from class org.openstreetmap.josm.data.vector.VectorPrimitive
addReferrer, declareCachedStyleUpToDate, getCachedStyle, getDataSet, getLayer, getReferrers, hasDirectionKeys, isAnnotated, isCachedStyleUpToDate, isHighlighted, keysChangedImpl, referrers, removeReferrer, reversedDirection, setCachedStyle, setDataSet, setDisabled, setHighlighted, setId, setVisible, visitReferrers
-
Methods inherited from class org.openstreetmap.josm.data.osm.AbstractPrimitive
clearOsmMetadata, cloneFrom, doGet, get, getChangesetId, getDisabledType, getDiscardableKeys, getFlagsAsString, getHiddenType, getId, getIgnoreCase, getInstant, getInterestingTags, getKeys, getNumKeys, getRawTimestamp, getTimestamp, getUninterestingKeys, getUniqueId, getUser, getVersion, getWorkInProgressKeys, hasKey, hasKey, hasKeys, isDeleted, isDisabled, isDisabledAndHidden, isDrawable, isIncomplete, isModified, isNew, isNewOrUndeleted, isPreserved, isReferrersDownloaded, isTagged, isTimestampEmpty, isUndeleted, isUninterestingKey, isUsable, isVisible, keys, keySet, put, putAll, remove, removeAll, setChangesetId, setDeleted, setDisabledState, setDisabledType, setHiddenType, setIncomplete, setInstant, setKeys, setKeys, setModified, setOsmId, setRawTimestamp, setReferrersDownloaded, setTimestamp, setUser, unsetDisabledState, updateFlags, updateFlagsChanged, visitKeys
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openstreetmap.josm.data.osm.IPrimitive
getChangesetId, getDataSet, getId, getInstant, getInterestingTags, getLocalName, getName, getOsmId, getOsmPrimitiveId, getPrimitiveId, getRawTimestamp, getReferrers, getReferrers, getStyleCacheSyncObject, getTimestamp, getUser, getVersion, hasDirectionKeys, hasSameInterestingTags, isAnnotated, isDeleted, isDisabled, isDisabledAndHidden, isDrawable, isHighlighted, isIncomplete, isMemberOfSelected, isModified, isMultipolygon, isNewOrUndeleted, isOuterMemberOfSelected, isPreserved, isReferrersDownloaded, isSelectable, isSelected, isTagged, isTimestampEmpty, isUndeleted, isUsable, isVisible, reversedDirection, setChangesetId, setDeleted, setHighlighted, setInstant, setModified, setOsmId, setRawTimestamp, setReferrersDownloaded, setTimestamp, setUser, setVisible, visitReferrers
-
Methods inherited from interface org.openstreetmap.josm.data.osm.IWay
compareTo, getChildren, getDisplayName, getRealNodesCount, hasIncompleteNodes, isEmpty
-
Methods inherited from interface org.openstreetmap.josm.data.osm.PrimitiveId
getUniqueId, isNew
-
Methods inherited from interface org.openstreetmap.josm.data.osm.Stylable
clearCachedStyle, declareCachedStyleUpToDate, getCachedStyle, isCachedStyleUpToDate, setCachedStyle
-
Methods inherited from interface org.openstreetmap.josm.data.osm.Tagged
get, getKeys, getNumKeys, hasKey, hasKeys, hasTag, hasTag, hasTag, hasTag, hasTagDifferent, hasTagDifferent, hasTagDifferent, isKeyFalse, isKeyTrue, keys, keySet, put, put, putAll, remove, removeAll, setKeys, visitKeys
-
-
-
-
Field Detail
-
WAY_GENERATOR
private static final UniqueIdGenerator WAY_GENERATOR
-
nodes
private final java.util.List<VectorNode> nodes
-
cachedBBox
private BBox cachedBBox
-
-
Constructor Detail
-
VectorWay
public VectorWay(java.lang.String layer)
Create a new way for a layer- Parameters:
layer
- The layer for the way
-
-
Method Detail
-
getIdGenerator
public UniqueIdGenerator getIdGenerator()
Description copied from class:AbstractPrimitive
Returns the unique identifier generator.- Specified by:
getIdGenerator
in classAbstractPrimitive
- Returns:
- the unique identifier generator
-
accept
public void accept(PrimitiveVisitor visitor)
Description copied from interface:IPrimitive
Makes the given visitor visit this primitive.- Specified by:
accept
in interfaceIPrimitive
- Parameters:
visitor
- visitor
-
getBBox
public BBox getBBox()
Description copied from interface:IPrimitive
Fetches the bounding box of the primitive. Since 17752, the returned bounding box might be immutable, i.e., modifying calls throw anUnsupportedOperationException
.- Specified by:
getBBox
in interfaceIPrimitive
- Specified by:
getBBox
in interfaceIQuadBucketType
- Returns:
- Bounding box of the object
-
getNodesCount
public int getNodesCount()
Description copied from interface:IWay
Replies the number of nodes in this way.- Specified by:
getNodesCount
in interfaceIWay<VectorNode>
- Returns:
- the number of nodes in this way.
-
getNode
public VectorNode getNode(int index)
Description copied from interface:IWay
Replies the node at positionindex
.- Specified by:
getNode
in interfaceIWay<VectorNode>
- Parameters:
index
- the position- Returns:
- the node at position
index
-
getNodes
public java.util.List<VectorNode> getNodes()
Description copied from interface:IWay
Returns the list of nodes in this way.- Specified by:
getNodes
in interfaceIWay<VectorNode>
- Returns:
- the list of nodes in this way
-
setNodes
public void setNodes(java.util.List<VectorNode> nodes)
Description copied from interface:IWay
Set new list of nodes to way. This method is preferred to multiple calls to addNode/removeNode and similar methods because nodes are internally saved as array which means lower memory overhead but also slower modifying operations.- Specified by:
setNodes
in interfaceIWay<VectorNode>
- Parameters:
nodes
- New way nodes. Can be null, in that case all way nodes are removed
-
getNodeIds
public java.util.List<java.lang.Long> getNodeIds()
Description copied from interface:IWay
Returns the list of node ids in this way.- Specified by:
getNodeIds
in interfaceIWay<VectorNode>
- Returns:
- the list of node ids in this way
-
getNodeId
public long getNodeId(int idx)
Description copied from interface:IWay
Returns id of the node at given index.- Specified by:
getNodeId
in interfaceIWay<VectorNode>
- Parameters:
idx
- node index- Returns:
- id of the node at given index
-
isClosed
public boolean isClosed()
Description copied from interface:IWay
Determines if this way is closed.- Specified by:
isClosed
in interfaceIWay<VectorNode>
- Returns:
true
if this way is closed,false
otherwise
-
firstNode
public VectorNode firstNode()
Description copied from interface:IWay
Returns the first node of this way. The result equalsgetNode
(0)
.- Specified by:
firstNode
in interfaceIWay<VectorNode>
- Returns:
- the first node of this way
-
lastNode
public VectorNode lastNode()
Description copied from interface:IWay
Returns the last node of this way. The result equals
.getNode
(getNodesCount
- 1)- Specified by:
lastNode
in interfaceIWay<VectorNode>
- Returns:
- the last node of this way
-
isFirstLastNode
public boolean isFirstLastNode(INode n)
Description copied from interface:IWay
Replies true if the given node is the first or the last one of this way, false otherwise.- Specified by:
isFirstLastNode
in interfaceIWay<VectorNode>
- Parameters:
n
- The node to test- Returns:
- true if the
n
is the first or the last node, false otherwise.
-
isInnerNode
public boolean isInnerNode(INode n)
Description copied from interface:IWay
Replies true if the given node is an inner node of this way, false otherwise.- Specified by:
isInnerNode
in interfaceIWay<VectorNode>
- Parameters:
n
- The node to test- Returns:
- true if the
n
is an inner node, false otherwise.
-
getType
public OsmPrimitiveType getType()
Description copied from interface:PrimitiveId
Gets the type of object represented by this object. Note that this should return the base primitive type (OsmPrimitiveType.NODE
,OsmPrimitiveType.WAY
, andOsmPrimitiveType.RELATION
).- Specified by:
getType
in interfacePrimitiveId
- Returns:
- the object type
- See Also:
Node
,Way
,Relation
-
getDisplayType
public OsmPrimitiveType getDisplayType()
Description copied from interface:IPrimitive
Gets the type this primitive is displayed at- Specified by:
getDisplayType
in interfaceIPrimitive
- Returns:
- A
OsmPrimitiveType
-
-