@Transactional
  @Override
  public void removeAll(User user, List<Company> companies, boolean propagate)
      throws ChouetteException {
    for (Company company : companies) {

      INeptuneManager<Line> lineManager = (INeptuneManager<Line>) getManager(Line.class);
      INeptuneManager<VehicleJourney> vjManager =
          (INeptuneManager<VehicleJourney>) getManager(VehicleJourney.class);
      Filter filter = Filter.getNewEqualsFilter("company.id", company.getId());
      List<Line> lines = lineManager.getAll(user, filter);
      List<VehicleJourney> vehicleJourneys = vjManager.getAll(user, filter);
      if (propagate) {
        lineManager.removeAll(user, lines, propagate);
        vjManager.removeAll(user, vehicleJourneys, propagate);
      } else {
        for (Line line : lines) {
          line.setCompany(null);
          lineManager.update(user, line);
        }
        for (VehicleJourney vehicleJourney : vehicleJourneys) {
          vehicleJourney.setCompany(null);
          vjManager.update(user, vehicleJourney);
        }
      }
    }
    super.removeAll(user, companies, propagate);
  }