public class VehicleUpdatingVariableListener implements PlanningVariableListener<Customer> {}
La classe ci-dessus a été supprimée dans la version 7.2 finale. Dans mon implémentation d'Optaplanner, j'ai écrit le code pièce à l'intérieur de la méthode updateVehicle qui se trouve à l'intérieur de la classe. Le code ajouté est utilisé lorsque le véhicule est mis à jour dans le client, j'ai également mis à jour le véhicule de contrepartie. contrepartie: Ajout d'une variable d'ombre supplémentaire.VehicleUpdatingVariableListener est retiré de 7.2 optaplanner qui était là dans la version 6.0
Alors, comment ai-je pu le faire dans la version 7.2?
Modifier 1
protected void updateVehicle(ScoreDirector scoreDirector, Customer sourceCustomer) {
Standstill previousStandstill = sourceCustomer.getPreviousStandstill();
Vehicle vehicle = previousStandstill == null ? null : previousStandstill.getVehicle();
Customer shadowCustomer = sourceCustomer;
while (shadowCustomer != null && shadowCustomer.getVehicle() != vehicle) {
scoreDirector.beforeVariableChanged(shadowCustomer, "vehicle");
scoreDirector.beforeVariableChanged(shadowCustomer.getCounterpartCustomer(),"vehicle");
shadowCustomer.setVehicle(vehicle);
scoreDirector.afterVariableChanged(shadowCustomer, "vehicle");
scoreDirector.afterVariableChanged(shadowCustomer.getCounterpartCustomer(),"vehicle");
shadowCustomer = shadowCustomer.getNextCustomer();
}
}
@GeofferyDeSmet Merci pour la réponse rapide. ArrivalTimeUpdatingVariableListener est pour mettre à jour arrivalTime, mais je veux mettre à jour la variable Shadow du véhicule. J'ai modifié une question avec un extrait de code –