private void sendNodes() { // mark all nodes as required ReleasableIterator<WayContainer> wayIterator = allWays.iterate(); while (wayIterator.hasNext()) { Way way = wayIterator.next().getEntity(); if (!isRequiredWay(way)) continue; for (WayNode nodeReference : way.getWayNodes()) { long nodeId = nodeReference.getNodeId(); requiredNodes.set(nodeId); } } wayIterator.release(); ReleasableIterator<NodeContainer> nodeIterator = allNodes.iterate(); while (nodeIterator.hasNext()) { NodeContainer nodeContainer = nodeIterator.next(); if (!isRequiredNode(nodeContainer.getEntity())) { continue; } sink.process(nodeContainer); } nodeIterator.release(); }
/** {@inheritDoc} */ @Override public void process(NodeContainer nodeContainer) { boolean modified; nodeBuilder.initialize(nodeContainer.getEntity()); modified = false; modified = modified || processEntity(nodeBuilder); modified = modified || processNode(nodeBuilder); if (modified) { sink.process(new NodeContainer(nodeBuilder.buildEntity())); } else { sink.process(nodeContainer); } }