public class RelationNodeMap extends Object
Modifier and Type | Class and Description |
---|---|
private static class |
RelationNodeMap.NodesWays |
Modifier and Type | Field and Description |
---|---|
private Node |
firstCircular |
private Integer |
firstOneway |
private Node |
lastOnewayNode |
private RelationNodeMap.NodesWays |
map |
private List<Integer> |
notSortable
All members that are incomplete or not a way
|
private RelationNodeMap.NodesWays |
onewayMap |
private RelationNodeMap.NodesWays |
onewayReverseMap |
private Set<Integer> |
remaining |
private Map<Integer,Set<Node>> |
remainingOneway |
Constructor and Description |
---|
RelationNodeMap(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 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,
Integer way,
Node n) |
private void |
done(Integer i) |
private void |
doneOneway(Integer i)
This relation member has been processed.
|
private Integer |
findAdjacentWay(RelationNodeMap.NodesWays nw,
Node n) |
static Node |
firstOnewayNode(RelationMember m) |
List<Integer> |
getNotSortableMembers() |
static Node |
lastOnewayNode(RelationMember m) |
Integer |
pop()
Returns some remaining member or null if every sortable member has been processed.
|
Integer |
popAdjacent(Integer way)
Return a relation member that is linked to the member 'i', but has not been popped yet.
|
private Integer |
popBackwardOnewayPart(int way) |
private Integer |
popForwardOnewayPart(Integer way) |
private Node |
processBackwardIfEndOfLoopReached(Integer way) |
private final RelationNodeMap.NodesWays map
private final RelationNodeMap.NodesWays onewayMap
private final RelationNodeMap.NodesWays onewayReverseMap
private final Map<Integer,Set<Node>> remainingOneway
private final List<Integer> notSortable
private Integer firstOneway
private Node lastOnewayNode
private Node firstCircular
RelationNodeMap(List<RelationMember> members)
public static Node firstOnewayNode(RelationMember m)
public static Node lastOnewayNode(RelationMember m)
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 Integer popAdjacent(Integer way)
way
- way keyprivate Integer popForwardOnewayPart(Integer way)
private Node processBackwardIfEndOfLoopReached(Integer way)
private Integer popBackwardOnewayPart(int way)
private Integer deleteAndGetAdjacentNode(RelationNodeMap.NodesWays nw, Node n)
nw
- nodes and waysn
- nodeprivate Integer findAdjacentWay(RelationNodeMap.NodesWays nw, Node n)
private void deleteWayNode(RelationNodeMap.NodesWays nw, Integer way, Node n)
public Integer pop()
private void doneOneway(Integer i)
i
- member keypublic List<Integer> getNotSortableMembers()