ReleasableIterator<Way> wayReader = this.wayStore.iterate(); while (wayReader.hasNext()) { if (this.progressLogs) { ReleasableIterator<Relation> relationReader = this.relationStore.iterate(); RelationHandler relationHandler = new RelationHandler(); while (relationReader.hasNext()) { wayReader = this.wayStore.iterate(); WayHandler wayHandler = new WayHandler(); while (wayReader.hasNext()) {
private void initialize() { if (!initialized) { while (sourceIterator.hasNext()) { store.add(sourceIterator.next()); } sourceIterator.close(); sourceIterator = null; storeIterator = store.iterate(); initialized = true; } }
private void initialize() { if (!initialized) { while (sourceIterator.hasNext()) { store.add(sourceIterator.next()); } sourceIterator.close(); sourceIterator = null; storeIterator = store.iterate(); initialized = true; } }
private void pumpWaysToSink() { try (ReleasableIterator<WayContainer> i = allWays.iterate()) { while (i.hasNext()) { WayContainer wayContainer = i.next(); if (availableWays.get(wayContainer.getEntity().getId())) { emitWay(wayContainer); } } } }
private void pumpNodesToSink() { try (ReleasableIterator<NodeContainer> i = allNodes.iterate()) { while (i.hasNext()) { NodeContainer nodeContainer = i.next(); if (availableNodes.get(nodeContainer.getEntity().getId())) { emitNode(nodeContainer); } } } }
private void pumpWaysToSink() { try (ReleasableIterator<WayContainer> i = allWays.iterate()) { while (i.hasNext()) { WayContainer wayContainer = i.next(); if (availableWays.get(wayContainer.getEntity().getId())) { emitWay(wayContainer); } } } }
private void pumpRelationsToSink() { try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { while (i.hasNext()) { RelationContainer relationContainer = i.next(); if (availableRelations.get(relationContainer.getEntity().getId())) { emitRelation(relationContainer); } } } }
private void pumpNodesToSink() { try (ReleasableIterator<NodeContainer> i = allNodes.iterate()) { while (i.hasNext()) { NodeContainer nodeContainer = i.next(); if (availableNodes.get(nodeContainer.getEntity().getId())) { emitNode(nodeContainer); } } } }
private void pumpRelationsToSink() { try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { while (i.hasNext()) { RelationContainer relationContainer = i.next(); if (availableRelations.get(relationContainer.getEntity().getId())) { emitRelation(relationContainer); } } } }
ReleasableIterator<NodeContainer> nodeIterator = allNodes.iterate(); while (nodeIterator.hasNext()) { NodeContainer nodeContainer = nodeIterator.next(); ReleasableIterator<WayContainer> wayIterator = allWays.iterate(); while (wayIterator.hasNext()) { sink.process(wayIterator.next()); ReleasableIterator<RelationContainer> relationIterator = allRelations.iterate(); while (relationIterator.hasNext()) { sink.process(relationIterator.next());
ReleasableIterator<NodeContainer> nodeIterator = allNodes.iterate(); while (nodeIterator.hasNext()) { sink.process(nodeIterator.next()); ReleasableIterator<WayContainer> wayIterator = allWays.iterate(); while (wayIterator.hasNext()) { WayContainer wayContainer = wayIterator.next(); ReleasableIterator<RelationContainer> relationIterator = allRelations.iterate(); while (relationIterator.hasNext()) { sink.process(relationIterator.next());
@Override public void complete() { objects.complete(); if (nodesSeen) { sink.process(new BoundContainer(new Bound(right, left, top, bottom, this.origin))); } try (ReleasableIterator<EntityContainer> i = objects.iterate()) { while (i.hasNext()) { sink.process(i.next()); } } sink.complete(); }
@Override public void complete() { objects.complete(); if (nodesSeen) { sink.process(new BoundContainer(new Bound(right, left, top, bottom, this.origin))); } try (ReleasableIterator<EntityContainer> i = objects.iterate()) { while (i.hasNext()) { sink.process(i.next()); } } sink.complete(); }
/** * Select all nodes within already selected ways. */ private void selectWayNodes() { try (ReleasableIterator<WayContainer> i = allWays.iterate()) { while (i.hasNext()) { Way way = i.next().getEntity(); long wayId = way.getId(); // Only examine available relations. if (availableWays.get(wayId)) { // Select all nodes within the way. for (WayNode wayNode : way.getWayNodes()) { availableNodes.set(wayNode.getNodeId()); } } } } }
/** * Select all nodes within already selected ways. */ private void selectWayNodes() { try (ReleasableIterator<WayContainer> i = allWays.iterate()) { while (i.hasNext()) { Way way = i.next().getEntity(); long wayId = way.getId(); // Only examine available relations. if (availableWays.get(wayId)) { // Select all nodes within the way. for (WayNode wayNode : way.getWayNodes()) { availableNodes.set(wayNode.getNodeId()); } } } } }
private boolean selectParentRelationsPass() { try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { int selectionCount; selectionCount = 0; while (i.hasNext()) { Relation relation = i.next().getEntity(); long relationId = relation.getId(); // Ignore relations that have already been selected. if (!availableRelations.get(relationId)) { // This relation becomes an available relation if one of its member // relations is also available. for (RelationMember member : relation.getMembers()) { if (member.getMemberType().equals(EntityType.Relation)) { if (availableRelations.get(member.getMemberId())) { availableRelations.set(relationId); selectionCount++; } } } } } return selectionCount > 0; } }
/** * Select all relation members of type node or way for existing selected relations. */ private void selectChildNonRelationsPass() { try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { while (i.hasNext()) { Relation relation = i.next().getEntity(); long relationId = relation.getId(); // Only examine available relations. if (availableRelations.get(relationId)) { // Select the member if it hasn't already been selected. for (RelationMember member : relation.getMembers()) { switch (member.getMemberType()) { case Node: availableNodes.set(member.getMemberId()); break; case Way: availableWays.set(member.getMemberId()); break; default: break; } } } } } }
private boolean selectParentRelationsPass() { try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { int selectionCount; selectionCount = 0; while (i.hasNext()) { Relation relation = i.next().getEntity(); long relationId = relation.getId(); // Ignore relations that have already been selected. if (!availableRelations.get(relationId)) { // This relation becomes an available relation if one of its member // relations is also available. for (RelationMember member : relation.getMembers()) { if (member.getMemberType().equals(EntityType.Relation)) { if (availableRelations.get(member.getMemberId())) { availableRelations.set(relationId); selectionCount++; } } } } } return selectionCount > 0; } }
/** * Select all relation members of type node or way for existing selected relations. */ private void selectChildNonRelationsPass() { try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { while (i.hasNext()) { Relation relation = i.next().getEntity(); long relationId = relation.getId(); // Only examine available relations. if (availableRelations.get(relationId)) { // Select the member if it hasn't already been selected. for (RelationMember member : relation.getMembers()) { switch (member.getMemberType()) { case Node: availableNodes.set(member.getMemberId()); break; case Way: availableWays.set(member.getMemberId()); break; default: break; } } } } } }
try (ReleasableIterator<RelationContainer> i = allRelations.iterate()) { int selectionCount;