/**
   * Remove units that don't have at least one valid hsaBusinessClassificationCode.
   *
   * @param units
   * @param showUnitsWithTheseHsaBusinessClassificationCodes
   */
  @Override
  protected void removeUnallowedUnits(
      SikSearchResultList<Unit> units,
      List<Integer> showUnitsWithTheseHsaBusinessClassificationCodes) {

    // Get all health care types that are unfiltered
    HealthcareTypeConditionHelper htch = new HealthcareTypeConditionHelper();
    List<HealthcareType> allUnfilteredHealthcareTypes = htch.getAllUnfilteredHealthCareTypes();

    for (int j = units.size() - 1; j >= 0; j--) {
      List<String> businessClassificationCodes = units.get(j).getHsaBusinessClassificationCode();
      boolean found =
          unitHasValidBusinessClassificationCode(
              showUnitsWithTheseHsaBusinessClassificationCodes, businessClassificationCodes);

      // The unit might still be valid because of the unfiltered healthcare types
      if (!found) {
        // If this unit does not match any unfiltered health care type, don't include in search
        // result
        found = unitMatchesUnfilteredHealtcareType(units.get(j), allUnfilteredHealthcareTypes);
      }

      if (found) {
        units.remove(units.get(j));
      }
    }
  }