Class VectorPrimitive
- java.lang.Object
-
- org.openstreetmap.josm.data.osm.AbstractPrimitive
-
- org.openstreetmap.josm.data.vector.VectorPrimitive
-
- All Implemented Interfaces:
java.lang.Comparable<IPrimitive>,IQuadBucketType,IFilterablePrimitive,IPrimitive,PrimitiveId,Stylable,Tagged,DataLayer<java.lang.String>
- Direct Known Subclasses:
VectorNode,VectorRelation,VectorWay
public abstract class VectorPrimitive extends AbstractPrimitive implements DataLayer<java.lang.String>
The base class for Vector primitives- Since:
- 17862
-
-
Field Summary
Fields Modifier and Type Field Description private VectorDataSetdataSetprivate booleanhighlightedprivate java.lang.Stringlayerprivate StyleCachemappaintStyleprivate java.lang.Objectreferrers-
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 Modifier Constructor Description protectedVectorPrimitive(java.lang.String layer)Create a primitive for a specific vector layer
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected voidaddReferrer(IPrimitive referrer)Add new referrer.voiddeclareCachedStyleUpToDate()Declare that the cached style for this primitive is up to date.private voiddoVisitReferrers(java.util.function.Consumer<IPrimitive> visitor)StyleCachegetCachedStyle()Returns the cached style.VectorDataSetgetDataSet()Returns the parent data set of this primitive.java.lang.StringgetLayer()Data layer information *java.util.List<VectorPrimitive>getReferrers(boolean allowWithoutDataset)Find primitives that reference this primitive.booleanhasDirectionKeys()true if this object has direction dependent tags (e.g.booleanisAnnotated()Determines if this object is considered "annotated".booleanisCachedStyleUpToDate()Check if the cached style for this primitive is up to date.booleanisHighlighted()Checks if the highlight flag for this primitive was setprotected voidkeysChangedImpl(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.private <T extends IPrimitive>
java.util.stream.Stream<T>referrers(boolean allowWithoutDataset, java.lang.Class<T> filter)<T extends IPrimitive>
java.util.stream.Stream<T>referrers(java.lang.Class<T> filter)Gets all primitives in the current dataset that reference this primitive.protected voidremoveReferrer(IPrimitive referrer)Remove referrer.booleanreversedDirection()true if this object has the "reversed direction" flag enabledvoidsetCachedStyle(StyleCache mappaintStyle)Sets the cached style.protected voidsetDataSet(VectorDataSet newDataSet)voidsetDisabled(boolean disabled)Make this object disabledvoidsetHighlighted(boolean highlighted)Updates the highlight flag for this primitive.protected voidsetId(long id)Set the id of the objectvoidsetVisible(boolean visible)Make this object visiblevoidvisitReferrers(PrimitiveVisitor visitor)Visitsvisitorfor all referrers.-
Methods inherited from class org.openstreetmap.josm.data.osm.AbstractPrimitive
clearOsmMetadata, cloneFrom, doGet, get, getChangesetId, getDisabledType, getDiscardableKeys, getFlagsAsString, getHiddenType, getId, getIdGenerator, getIgnoreCase, getInstant, getInterestingTags, getKeys, getNumKeys, getRawTimestamp, 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, 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
accept, getBBox, getChildren, getDisplayName, getDisplayType, getLocalName, getName, getOsmId, getOsmPrimitiveId, getPrimitiveId, getReferrers, getStyleCacheSyncObject, hasSameInterestingTags, isMemberOfSelected, isMultipolygon, isOuterMemberOfSelected, isSelectable, isSelected
-
Methods inherited from interface org.openstreetmap.josm.data.osm.PrimitiveId
getType
-
Methods inherited from interface org.openstreetmap.josm.data.osm.Stylable
clearCachedStyle
-
Methods inherited from interface org.openstreetmap.josm.data.osm.Tagged
hasTag, hasTag, hasTag, hasTag, hasTagDifferent, hasTagDifferent, hasTagDifferent, isKeyFalse, isKeyTrue, put
-
-
-
-
Field Detail
-
dataSet
private VectorDataSet dataSet
-
highlighted
private boolean highlighted
-
mappaintStyle
private StyleCache mappaintStyle
-
layer
private final java.lang.String layer
-
referrers
private java.lang.Object referrers
-
-
Constructor Detail
-
VectorPrimitive
protected VectorPrimitive(java.lang.String layer)
Create a primitive for a specific vector layer- Parameters:
layer- The layer for the primitive
-
-
Method Detail
-
keysChangedImpl
protected void keysChangedImpl(java.util.Map<java.lang.String,java.lang.String> originalKeys)
Description copied from class:AbstractPrimitiveWhat to do, when the tags have changed by one of the tag-changing methods.- Specified by:
keysChangedImplin classAbstractPrimitive- Parameters:
originalKeys- original tags
-
isHighlighted
public boolean isHighlighted()
Description copied from interface:IPrimitiveChecks if the highlight flag for this primitive was set- Specified by:
isHighlightedin interfaceIPrimitive- Overrides:
isHighlightedin classAbstractPrimitive- Returns:
- The highlight flag.
-
setHighlighted
public void setHighlighted(boolean highlighted)
Description copied from interface:IPrimitiveUpdates the highlight flag for this primitive.- Specified by:
setHighlightedin interfaceIPrimitive- Parameters:
highlighted- The new highlight flag.
-
isAnnotated
public boolean isAnnotated()
Description copied from interface:IPrimitiveDetermines if this object is considered "annotated". To be "annotated", an object must have one or more "work in progress" tags, such as "note" or "fixme".- Specified by:
isAnnotatedin interfaceIPrimitive- Overrides:
isAnnotatedin classAbstractPrimitive- Returns:
- true if this object is considered "annotated"
-
getDataSet
public VectorDataSet getDataSet()
Description copied from interface:IPrimitiveReturns the parent data set of this primitive.- Specified by:
getDataSetin interfaceIPrimitive- Returns:
- OsmData this primitive is part of.
-
setDataSet
protected void setDataSet(VectorDataSet newDataSet)
-
getCachedStyle
public final StyleCache getCachedStyle()
Description copied from interface:StylableReturns the cached style.- Specified by:
getCachedStylein interfaceStylable- Returns:
- the cached style
-
setCachedStyle
public final void setCachedStyle(StyleCache mappaintStyle)
Description copied from interface:StylableSets the cached style.- Specified by:
setCachedStylein interfaceStylable- Parameters:
mappaintStyle- the cached style
-
isCachedStyleUpToDate
public final boolean isCachedStyleUpToDate()
Description copied from interface:StylableCheck if the cached style for this primitive is up to date.- Specified by:
isCachedStyleUpToDatein interfaceStylable- Returns:
- true if the cached style for this primitive is up to date
-
declareCachedStyleUpToDate
public final void declareCachedStyleUpToDate()
Description copied from interface:StylableDeclare that the cached style for this primitive is up to date.- Specified by:
declareCachedStyleUpToDatein interfaceStylable
-
hasDirectionKeys
public boolean hasDirectionKeys()
Description copied from interface:IPrimitivetrue if this object has direction dependent tags (e.g. oneway)- Specified by:
hasDirectionKeysin interfaceIPrimitive- Overrides:
hasDirectionKeysin classAbstractPrimitive- Returns:
trueif this object has direction dependent tags
-
reversedDirection
public boolean reversedDirection()
Description copied from interface:IPrimitivetrue if this object has the "reversed direction" flag enabled- Specified by:
reversedDirectionin interfaceIPrimitive- Overrides:
reversedDirectionin classAbstractPrimitive- Returns:
trueif this object has the "reversed direction" flag enabled
-
getReferrers
public final java.util.List<VectorPrimitive> getReferrers(boolean allowWithoutDataset)
Description copied from interface:IPrimitiveFind primitives that reference this primitive. Returns only primitives that are included in the same dataset as this primitive.
For example following code will add wnew as referer to all nodes of existingWay, but this method will not return wnew because it's not part of the dataset
Way wnew = new Way(existingWay)- Specified by:
getReferrersin interfaceIPrimitive- Parameters:
allowWithoutDataset- If true, method will return empty list if primitive is not part of the dataset. If false, exception will be thrown in this case- Returns:
- a collection of all primitives that reference this primitive.
-
addReferrer
protected void addReferrer(IPrimitive referrer)
Add new referrer. If referrer is already included then no action is taken- Parameters:
referrer- The referrer to add
-
removeReferrer
protected void removeReferrer(IPrimitive referrer)
Remove referrer. No action is taken if referrer is not registered- Parameters:
referrer- The referrer to remove
-
referrers
private <T extends IPrimitive> java.util.stream.Stream<T> referrers(boolean allowWithoutDataset, java.lang.Class<T> filter)
-
referrers
public final <T extends IPrimitive> java.util.stream.Stream<T> referrers(java.lang.Class<T> filter)
Gets all primitives in the current dataset that reference this primitive.- Type Parameters:
T- type of primitives- Parameters:
filter- restrict primitives to subclasses- Returns:
- the referrers as Stream
-
visitReferrers
public void visitReferrers(PrimitiveVisitor visitor)
Description copied from interface:IPrimitiveVisits
visitorfor all referrers.- Specified by:
visitReferrersin interfaceIPrimitive- Parameters:
visitor- the visitor. Ignored, if null.
-
doVisitReferrers
private void doVisitReferrers(java.util.function.Consumer<IPrimitive> visitor)
-
setId
protected void setId(long id)
Set the id of the object- Parameters:
id- The id
-
setDisabled
public void setDisabled(boolean disabled)
Make this object disabled- Parameters:
disabled-trueto disable the object
-
setVisible
public void setVisible(boolean visible)
Make this object visible- Specified by:
setVisiblein interfaceIPrimitive- Overrides:
setVisiblein classAbstractPrimitive- Parameters:
visible-trueto make this object visible (default)- See Also:
IPrimitive.isVisible()
-
-