@Override public void setSignalStateAllTurningMoves(SignalGroupState state) { this.allToLinksState = state; this.linkGreen = checkGreen(state); }
@Override public final void setSignalStateAllTurningMoves( final SignalGroupState state) { qSignalizedItem.setSignalStateAllTurningMoves(state); thisTimeStepGreen = qSignalizedItem.hasGreenForAllToLinks(); // (this is only for capacity accumulation) }
@Override public final boolean hasGreenForToLink(final Id<Link> toLinkId) { if (qSignalizedItem != null){ return qSignalizedItem.hasGreenForToLink(toLinkId); } return true; //the lane is not signalized and thus always green }
@Override public void setSignalStateForTurningMove(SignalGroupState state, Id<Link> toLinkId) { if (this.toLinkIdSignalStates == null){ this.initToLinkIdSignalStates(); } this.toLinkIdSignalStates.put(toLinkId, state); if (checkGreen(state)){ this.linkGreen = true; } else { boolean foundGreen = false; for (SignalGroupState sgs : this.toLinkIdSignalStates.values()){ if (checkGreen(sgs)){ foundGreen = true; } } this.linkGreen = foundGreen; } }
@Override public final void setSignalStateForTurningMove( final SignalGroupState state, final Id<Link> toLinkId) { if (!qLink.getToNode().getOutLinks().containsKey(toLinkId)){ throw new IllegalArgumentException("ToLink " + toLinkId + " is not reachable from QLink Id " + this.id ); } qSignalizedItem.setSignalStateForTurningMove(state, toLinkId); thisTimeStepGreen = qSignalizedItem.hasGreenForAllToLinks(); // (this is only for capacity accumulation. As soon as at least one turning relation is green, the "link" is considered // green). }
@Override public boolean hasGreenForAllToLinks() { if (qSignalizedItem != null) { return qSignalizedItem.hasGreenForAllToLinks(); } return true; //the lane is not signalized and thus always green }
@Override public final void setSignalized( final boolean isSignalized) { qSignalizedItem = new DefaultSignalizeableItem(qLink.getToNode().getOutLinks().keySet()); }
public boolean hasGreenForToLink(Id<Link> toLinkId){ if (this.allToLinksState != null) { return checkGreen(this.allToLinksState); } return checkGreen(this.toLinkIdSignalStates.get(toLinkId)); }