private void _resolveOverflowStart(int index) {
      assert _stations != null;
      assert index >= 0;
      assert index < _stations.size();

      Station station = _stations.get(index);
      station.setOverflowStart(true);
      if (station.hasNext() && station.getNext().isDisabled()) {
        // If next stop is disabled, so is the overflow
        station.setDisabled(true);
      }

      station.setPrevious(null);
    }
    private void _resolveStandard() {
      if (_stations.size() > 1) {
        Iterator<Station> iterator = _stations.iterator();

        Station previous = null;
        Station current = iterator.next();
        Station next = iterator.next();

        _updateStation(current, previous, next);

        while (iterator.hasNext()) {
          previous = current;
          current = next;
          next = iterator.next();
          _updateStation(current, previous, next);
        }

        next.setPrevious(current);
      }
    }
 private void _updateStation(Station current, Station previous, Station next) {
   current.setPrevious(previous);
   current.setNext(next);
 }