test_class.declarator: vehicle = VehicleFactory.testVehicle(4)
test_class.modifier: private final
test_class.original_string: private final Vehicle vehicle = VehicleFactory.testVehicle(4);
test_class.type: Vehicle
test_class.var_name: vehicle
test_class.declarator: depot = new Location(1, Coordinates.valueOf(5, 5))
test_class.modifier: private final
test_class.original_string: private final Location depot = new Location(1, Coordinates.valueOf(5, 5));
test_class.type: Location
test_class.var_name: depot
test_class.declarator: visit1 = new Location(2, Coordinates.valueOf(5, 5))
test_class.modifier: private final
test_class.original_string: private final Location visit1 = new Location(2, Coordinates.valueOf(5, 5));
test_class.type: Location
test_class.var_name: visit1
test_class.declarator: visit2 = new Location(3, Coordinates.valueOf(5, 5))
test_class.modifier: private final
test_class.original_string: private final Location visit2 = new Location(3, Coordinates.valueOf(5, 5));
test_class.type: Location
test_class.var_name: visit2
test_class.file: optaweb-vehicle-routing-backend/src/test/java/org/optaweb/vehiclerouting/domain/RouteTest.java
test_class.identifier: RouteTest
test_case.body: @Test
      void cannot_modify_visits_externally() {
          ArrayList<Location> visits = new ArrayList<>();
          visits.add(visit1);
          List<Location> routeVisits = new Route(vehicle, depot, visits).visits();
  
          assertThatExceptionOfType(UnsupportedOperationException.class)
                  .isThrownBy(routeVisits::clear);
      }
test_case.class_method_signature: RouteTest.cannot_modify_visits_externally()
test_case.full_signature: @Test void cannot_modify_visits_externally()
test_case.identifier: cannot_modify_visits_externally
test_case.invocations: add visits isThrownBy assertThatExceptionOfType
test_case.modifiers: @Test
test_case.parameters: ()
test_case.return: void
test_case.signature: void cannot_modify_visits_externally()
focal_class.declarator: vehicle
focal_class.modifier: private final
focal_class.original_string: private final Vehicle vehicle;
focal_class.type: Vehicle
focal_class.var_name: vehicle
focal_class.declarator: depot
focal_class.modifier: private final
focal_class.original_string: private final Location depot;
focal_class.type: Location
focal_class.var_name: depot
focal_class.declarator: visits
focal_class.modifier: private final
focal_class.original_string: private final List<Location> visits;
focal_class.type: List<Location>
focal_class.var_name: visits
focal_class.file: optaweb-vehicle-routing-backend/src/main/java/org/optaweb/vehiclerouting/domain/Route.java
focal_class.identifier: Route
focal_class.class_method_signature: Route.Route(Vehicle vehicle, Location depot, List<Location> visits)
focal_class.full_signature: public  Route(Vehicle vehicle, Location depot, List<Location> visits)
focal_class.identifier: Route
focal_class.modifiers: public
focal_class.parameters: (Vehicle vehicle, Location depot, List<Location> visits)
focal_class.signature:  Route(Vehicle vehicle, Location depot, List<Location> visits)
focal_class.class_method_signature: Route.vehicle()
focal_class.full_signature: public Vehicle vehicle()
focal_class.identifier: vehicle
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Vehicle
focal_class.signature: Vehicle vehicle()
focal_class.class_method_signature: Route.depot()
focal_class.full_signature: public Location depot()
focal_class.identifier: depot
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: Location
focal_class.signature: Location depot()
focal_class.class_method_signature: Route.visits()
focal_class.full_signature: public List<Location> visits()
focal_class.identifier: visits
focal_class.modifiers: public
focal_class.parameters: ()
focal_class.return: List<Location>
focal_class.signature: List<Location> visits()
focal_class.class_method_signature: Route.toString()
focal_class.full_signature: @Override public String toString()
focal_class.identifier: toString
focal_class.modifiers: @Override public
focal_class.parameters: ()
focal_class.return: String
focal_class.signature: String toString()
focal_method.body: public List<Location> visits() {
          return Collections.unmodifiableList(visits);
      }
focal_method.class_method_signature: Route.visits()
focal_method.full_signature: public List<Location> visits()
focal_method.identifier: visits
focal_method.invocations: unmodifiableList
focal_method.modifiers: public
focal_method.parameters: ()
focal_method.return: List<Location>
focal_method.signature: List<Location> visits()