WheelchairSidewalkWay.java
- package org.heigit.ors.routing.graphhopper.extensions.reader.osmfeatureprocessors;
- import com.graphhopper.reader.ReaderWay;
- public class WheelchairSidewalkWay extends PedestrianWay {
- private final OSMAttachedSidewalkProcessor sidewalkProcessor;
- private final OSMAttachedSidewalkProcessor.Side side;
- private OSMAttachedSidewalkProcessor.Side lastPrepared = OSMAttachedSidewalkProcessor.Side.NONE;
- public WheelchairSidewalkWay(ReaderWay way) {
- super(way);
- sidewalkProcessor = new OSMAttachedSidewalkProcessor();
- this.side = sidewalkProcessor.identifySidesWhereSidewalkIsPresent(this.readerWay);
- }
- @Override
- public boolean hasWayBeenFullyProcessed() {
- if (side == OSMAttachedSidewalkProcessor.Side.BOTH && lastPrepared == OSMAttachedSidewalkProcessor.Side.RIGHT) {
- return true;
- }
- return side == lastPrepared;
- }
- @Override
- public void prepare() {
- // Find out if anything has been done yet
- if (side == OSMAttachedSidewalkProcessor.Side.BOTH && lastPrepared == OSMAttachedSidewalkProcessor.Side.RIGHT) {
- // The right sidewalk is the last to be processed when we are looking at both sides
- lastPrepared = OSMAttachedSidewalkProcessor.Side.BOTH;
- }
- if (lastPrepared != side) {
- this.readerWay = sidewalkProcessor.attachSidewalkTag(this.readerWay, side);
- lastPrepared = sidewalkProcessor.getPreparedSide(this.readerWay);
- }
- }
- }