void checkShortcut(boolean shouldBeShortcut, String methodName) { if (isShortcut()) { if (!shouldBeShortcut) throw new IllegalStateException("Cannot call " + methodName + " on shortcut " + getEdge()); } else if (shouldBeShortcut) throw new IllegalStateException("Method " + methodName + " only for shortcuts " + getEdge()); } }
@Override public final long getFlags() { if (isShortcut()) throw new IllegalStateException("Shortcut should not need to return raw flags!"); return getDirectFlags(); }
void checkShortcut(boolean shouldBeShortcut, String methodName) { if (isShortcut()) { if (!shouldBeShortcut) throw new IllegalStateException("Cannot call " + methodName + " on shortcut " + getEdge()); } else if (shouldBeShortcut) throw new IllegalStateException("Method " + methodName + " only for shortcuts " + getEdge()); } }
@Override public boolean isForward(FlagEncoder encoder) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScFwdDir()) != 0; return encoder.isForward(getDirectFlags()); }
@Override public boolean isBackward(FlagEncoder encoder) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScBwdDir()) != 0; return encoder.isBackward(getDirectFlags()); }
@Override public boolean isForward(FlagEncoder encoder) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScFwdDir()) != 0; return encoder.isForward(getDirectFlags()); }
@Override public final long getFlags() { if (isShortcut()) throw new IllegalStateException("Shortcut should not need to return raw flags!"); return getDirectFlags(); }
@Override public final long getFlags() { if (isShortcut()) throw new IllegalStateException("Shortcut should not need to return raw flags!"); return getDirectFlags(); }
@Override public boolean isForward( FlagEncoder encoder ) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScFwdDir()) != 0; return encoder.isForward(getDirectFlags()); }
@Override public final long getFlags() { if (isShortcut()) throw new IllegalStateException("Shortcut should not need to return raw flags!"); return getDirectFlags(); }
@Override public int getEdge() { if (isShortcut()) return baseGraph.edgeCount + edgeId; return super.getEdge(); }
@Override protected final boolean checkRange() { if (isShortcut()) return edgeId < shortcutCount; if (super.checkRange()) return true; // iterate over shortcuts edgeAccess = chEdgeAccess; edgeId = 0; edgePointer = (long) edgeId * shortcutEntryBytes; return edgeId < shortcutCount; }
@Override public boolean isBackward(FlagEncoder encoder) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScBwdDir()) != 0; return encoder.isBackward(getDirectFlags()); }
@Override protected final boolean checkRange() { if (isShortcut()) return edgeId < shortcutCount; if (super.checkRange()) return true; // iterate over shortcuts edgeAccess = chEdgeAccess; edgeId = 0; edgePointer = (long) edgeId * shortcutEntryBytes; return edgeId < shortcutCount; }
@Override public boolean isBackward( FlagEncoder encoder ) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScBwdDir()) != 0; return encoder.isBackward(getDirectFlags()); }
@Override public int getEdge() { if (isShortcut()) return baseGraph.edgeCount + edgeId; return super.getEdge(); }
@Override public boolean isForward(FlagEncoder encoder) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScFwdDir()) != 0; return encoder.isForward(getDirectFlags()); }
@Override public int getEdge() { if (isShortcut()) return baseGraph.edgeCount + edgeId; return super.getEdge(); }
@Override protected final boolean checkRange() { if (isShortcut()) return edgeId < shortcutCount; if (super.checkRange()) return true; // iterate over shortcuts edgeAccess = chEdgeAccess; edgeId = 0; edgePointer = (long) edgeId * shortcutEntryBytes; return edgeId < shortcutCount; }
@Override public boolean isBackward(FlagEncoder encoder) { assert encoder == weighting.getFlagEncoder() : encoder + " vs. " + weighting.getFlagEncoder(); if (isShortcut()) return (getDirectFlags() & PrepareEncoder.getScBwdDir()) != 0; return encoder.isBackward(getDirectFlags()); }