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);
}
}
}