@Override
  public void run(Plan plan) {

    if (!Boolean.parseBoolean(
        this.scenario
            .getConfig()
            .getModule("ActivityStrategies")
            .getValue("useSwapActivitiesStrategy"))) return;
    List<Activity> t = TripStructureUtils.getActivities(plan, this.stageActivityTypes);
    int countActivities = t.size();
    if (countActivities > 3) {

      int index1 = 1 + this.rng.nextInt(countActivities - 2);

      int index2 = 1 + this.rng.nextInt(countActivities - 2);

      while (index1 == index2) index2 = 1 + this.rng.nextInt(countActivities - 2);

      swap(plan, t.get(index1), t.get(index2));
    }
  }