|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.openstreetmap.josm.gui.dialogs.relation.RelationNodeMap
public class RelationNodeMap
Auxiliary class for relation sorting. Constructs two mappings: One that maps each way to its nodes and the inverse mapping that maps each node to all ways that have this node. After construction both maps are consistent, but later on objects that are no longer needed are removed from the value sets. However the corresponding keys are not deleted even if they map to an empty set. Note that normal ways have 2 nodes (beginning and end) but roundabouts can have less or more (that are shared by other members).
Nested Class Summary | |
---|---|
private static class |
RelationNodeMap.NodesWays
|
Field Summary | |
---|---|
(package private) Node |
firstCircular
|
(package private) java.lang.Integer |
firstOneway
|
(package private) Node |
lastOnewayNode
|
private RelationNodeMap.NodesWays |
map
|
private java.util.List<java.lang.Integer> |
notSortable
All members that are incomplete or not a way |
private RelationNodeMap.NodesWays |
onewayMap
|
private RelationNodeMap.NodesWays |
onewayReverseMap
|
private java.util.Set<java.lang.Integer> |
remaining
|
private java.util.Map<java.lang.Integer,java.util.Set<Node>> |
remainingOneway
|
Constructor Summary | |
---|---|
RelationNodeMap(java.util.List<RelationMember> members)
|
Method Summary | |
---|---|
private void |
addNodeWayMap(Node n,
int i)
|
private void |
addNodeWayMapReverse(Node n,
int i)
|
private void |
addPair(Node n,
int i)
|
private void |
addRemainingForward(Node n,
int i)
|
private void |
addWayNodeMap(Node n,
int i)
|
private void |
addWayNodeMapReverse(Node n,
int i)
|
private java.lang.Integer |
deleteAndGetAdjacentNode(RelationNodeMap.NodesWays nw,
Node n)
find next node in nw NodeWays structure, if the node is found delete and return it |
private void |
deleteWayNode(RelationNodeMap.NodesWays nw,
java.lang.Integer way,
Node n)
|
private void |
done(java.lang.Integer i)
|
private void |
doneOneway(java.lang.Integer i)
This relation member has been processed. |
private java.lang.Integer |
findAdjacentWay(RelationNodeMap.NodesWays nw,
Node n)
|
static Node |
firstOnewayNode(RelationMember m)
|
java.util.List<java.lang.Integer> |
getNotSortableMembers()
|
static Node |
lastOnewayNode(RelationMember m)
|
java.lang.Integer |
pop()
Returns some remaining member or null if every sortable member has been processed. |
java.lang.Integer |
popAdjacent(java.lang.Integer way)
Return a relation member that is linked to the member 'i', but has not been popped yet. |
private java.lang.Integer |
popBackwardOnewayPart(int way)
|
private java.lang.Integer |
popForwardOnewayPart(java.lang.Integer way)
|
private Node |
processBackwardIfEndOfLoopReached(java.lang.Integer way)
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
private RelationNodeMap.NodesWays map
private RelationNodeMap.NodesWays onewayMap
private RelationNodeMap.NodesWays onewayReverseMap
private java.util.Set<java.lang.Integer> remaining
private java.util.Map<java.lang.Integer,java.util.Set<Node>> remainingOneway
private java.util.List<java.lang.Integer> notSortable
java.lang.Integer firstOneway
Node lastOnewayNode
Node firstCircular
Constructor Detail |
---|
RelationNodeMap(java.util.List<RelationMember> members)
Method Detail |
---|
public static Node firstOnewayNode(RelationMember m)
public static Node lastOnewayNode(RelationMember m)
private void addPair(Node n, int i)
private void addNodeWayMap(Node n, int i)
private void addWayNodeMap(Node n, int i)
private void addNodeWayMapReverse(Node n, int i)
private void addWayNodeMapReverse(Node n, int i)
private void addRemainingForward(Node n, int i)
public java.lang.Integer popAdjacent(java.lang.Integer way)
private java.lang.Integer popForwardOnewayPart(java.lang.Integer way)
private Node processBackwardIfEndOfLoopReached(java.lang.Integer way)
private java.lang.Integer popBackwardOnewayPart(int way)
private java.lang.Integer deleteAndGetAdjacentNode(RelationNodeMap.NodesWays nw, Node n)
nw
- n
-
private java.lang.Integer findAdjacentWay(RelationNodeMap.NodesWays nw, Node n)
private void deleteWayNode(RelationNodeMap.NodesWays nw, java.lang.Integer way, Node n)
public java.lang.Integer pop()
private void doneOneway(java.lang.Integer i)
private void done(java.lang.Integer i)
public java.util.List<java.lang.Integer> getNotSortableMembers()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |