2017-09-04 3 views
0
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(); 
     } 
    } 

Répondre

0
+0

@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 –