docs: public BusItineraryHalt insertBusHaltBefore(BusItineraryHalt beforeHalt, UUID id, String name, BusItineraryHaltType type) {
  		assert beforeHalt != null;
  		assert this.contains(beforeHalt);
  
  		int haltIndex = -1;
  		int indexBefore = -1;
  		if (!beforeHalt.isValidPrimitive()) {
  			haltIndex =  ListUtil.indexOf(this.invalidHalts, INVALID_HALT_COMPARATOR, beforeHalt);
  			assert haltIndex != -1;
  			indexBefore = this.invalidHalts.get(haltIndex).getInvalidListIndex();
  		} else {
  			haltIndex =  ListUtil.indexOf(this.validHalts, VALID_HALT_COMPARATOR, beforeHalt);
  			assert haltIndex != -1;
  			indexBefore = this.validHalts.get(haltIndex).getInvalidListIndex();
  		}
  
  		BusItineraryHalt temp;
  		//decal insertion id invalid halts
  		for (int i = haltIndex; i < this.invalidHalts.size(); ++i) {
  			temp = this.invalidHalts.get(i);
  			if (temp.getInvalidListIndex() >= indexBefore) {
  				temp.setInvalidListIndex(temp.getInvalidListIndex() + 1);
  			}
  		}
  		//decal insertion id valid halts
  		final Iterator<BusItineraryHalt> it = this.validHalts.iterator();
  		while (it.hasNext()) {
  			temp = it.next();
  			if (temp.getInvalidListIndex() >= indexBefore) {
  				temp.setInvalidListIndex(temp.getInvalidListIndex() + 1);
  			}
  		}
  		return this.addBusHalt(id, name, type, indexBefore);
  	}