Class MergeSourceBuildingVisitor
- java.lang.Object
-
- org.openstreetmap.josm.data.osm.visitor.MergeSourceBuildingVisitor
-
- All Implemented Interfaces:
OsmPrimitiveVisitor
public class MergeSourceBuildingVisitor extends java.lang.Object implements OsmPrimitiveVisitor
MergeSourceBuildingVisitor helps to build the "hull" of a collection ofOsmPrimitive
s which shall be merged into another layer. The "hull" is slightly bigger than the original collection. It includes, for instance the nodes of a way in the original collection even though these nodes might not be present explicitly in the original collection. The "hull" also includes incompleteOsmPrimitive
s which are referred to by relations in the original collection. And it turnsOsmPrimitive
referred to byRelation
s in the original collection into incompleteOsmPrimitive
s in the "hull", if they are not themselves present in the original collection.- Since:
- 1891
-
-
Field Summary
Fields Modifier and Type Field Description private DataSet
hull
private java.util.Map<OsmPrimitive,PrimitiveData>
mappedPrimitives
private DataSet
selectionBase
-
Constructor Summary
Constructors Constructor Description MergeSourceBuildingVisitor(DataSet selectionBase)
Creates the visitor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description DataSet
build()
Builds and returns the "hull".protected void
buildHull()
protected boolean
isAlreadyRemembered(OsmPrimitive primitive)
protected boolean
isInSelectionBase(OsmPrimitive primitive)
protected void
rememberIncomplete(OsmPrimitive primitive)
protected void
rememberNode(Node n)
Remembers a node in the "hull"protected void
rememberRelation(Relation r)
Remembers a relation in the hullprotected void
rememberRelationPartial(Relation r)
protected void
rememberWay(Way w)
remembers a way in the hullvoid
visit(Node n)
Visiting call for points.void
visit(Relation r)
Visiting call for relations.void
visit(Way w)
Visiting call for lines.
-
-
-
Field Detail
-
selectionBase
private final DataSet selectionBase
-
mappedPrimitives
private final java.util.Map<OsmPrimitive,PrimitiveData> mappedPrimitives
-
-
Constructor Detail
-
MergeSourceBuildingVisitor
public MergeSourceBuildingVisitor(DataSet selectionBase)
Creates the visitor. The visitor starts to build the "hull" from the currently selected primitives in the datasetselectionBase
, i.e. fromOsmData.getSelected()
.- Parameters:
selectionBase
- the dataset. Must not be null.- Throws:
java.lang.IllegalArgumentException
- if selectionBase is null
-
-
Method Detail
-
isInSelectionBase
protected boolean isInSelectionBase(OsmPrimitive primitive)
-
isAlreadyRemembered
protected boolean isAlreadyRemembered(OsmPrimitive primitive)
-
rememberNode
protected void rememberNode(Node n)
Remembers a node in the "hull"- Parameters:
n
- the node
-
rememberWay
protected void rememberWay(Way w)
remembers a way in the hull- Parameters:
w
- the way
-
rememberRelation
protected void rememberRelation(Relation r)
Remembers a relation in the hull- Parameters:
r
- the relation
-
rememberRelationPartial
protected void rememberRelationPartial(Relation r)
-
rememberIncomplete
protected void rememberIncomplete(OsmPrimitive primitive)
-
visit
public void visit(Node n)
Description copied from interface:OsmPrimitiveVisitor
Visiting call for points.- Specified by:
visit
in interfaceOsmPrimitiveVisitor
- Parameters:
n
- The node to inspect.
-
visit
public void visit(Way w)
Description copied from interface:OsmPrimitiveVisitor
Visiting call for lines.- Specified by:
visit
in interfaceOsmPrimitiveVisitor
- Parameters:
w
- The way to inspect.
-
visit
public void visit(Relation r)
Description copied from interface:OsmPrimitiveVisitor
Visiting call for relations.- Specified by:
visit
in interfaceOsmPrimitiveVisitor
- Parameters:
r
- The relation to inspect.
-
buildHull
protected void buildHull()
-
-