public class RelationNodeMap extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
private static class |
RelationNodeMap.NodesWays |
Modifier and Type | Field and Description |
---|---|
private Node |
firstCircular |
private java.lang.Integer |
firstOneway |
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 |
private static java.lang.String |
ROLE_BACKWARD |
Constructor and Description |
---|
RelationNodeMap(java.util.List<RelationMember> members) |
Modifier and Type | Method and Description |
---|---|
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 static java.lang.Integer |
findAdjacentWay(RelationNodeMap.NodesWays nw,
Node n) |
static Node |
firstOnewayNode(RelationMember m)
Gets the start node of the member, respecting the direction role.
|
java.util.List<java.lang.Integer> |
getNotSortableMembers() |
static Node |
lastOnewayNode(RelationMember m)
Gets the end node of the member, respecting the direction role.
|
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) |
private static final java.lang.String ROLE_BACKWARD
private final RelationNodeMap.NodesWays map
private final RelationNodeMap.NodesWays onewayMap
private final RelationNodeMap.NodesWays onewayReverseMap
private final java.util.Set<java.lang.Integer> remaining
private final java.util.Map<java.lang.Integer,java.util.Set<Node>> remainingOneway
private final java.util.List<java.lang.Integer> notSortable
private java.lang.Integer firstOneway
private Node lastOnewayNode
private Node firstCircular
RelationNodeMap(java.util.List<RelationMember> members)
public static Node firstOnewayNode(RelationMember m)
m
- The relation member.null
if the member is no way, the node otherwise.public static Node lastOnewayNode(RelationMember m)
m
- The relation member.null
if the member is no way, the node otherwise.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)
way
- way keyprivate 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
- nodes and waysn
- nodeprivate static 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)
i
- member keyprivate void done(java.lang.Integer i)
public java.util.List<java.lang.Integer> getNotSortableMembers()