PlanningSolution.java 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. package fr.jaquin.bdlg.planner.domain;
  2. import java.util.ArrayList;
  3. import org.optaplanner.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore;
  4. public class PlanningSolution {
  5. private ArrayList<AssignementPair> assignements;
  6. private String message = "";
  7. private String explanation = "";
  8. private HardMediumSoftScore score;
  9. public PlanningSolution() {
  10. assignements = new ArrayList<AssignementPair>();
  11. }
  12. public static PlanningSolution from(Planning planning) {
  13. PlanningSolution output = new PlanningSolution();
  14. output.setScore(planning.getScore());
  15. for (Assignement assignement : planning.getAssignements()) {
  16. if (assignement.getVolonteer() == null) {
  17. output.message += "Error: No volunteer for slot " + assignement.getSlot().getId() + "\n";
  18. } else {
  19. output.assignements.add(
  20. new AssignementPair(assignement.getSlot().getId(), assignement.getVolonteer().getId()));
  21. }
  22. }
  23. for (MealAssignement assignement : planning.getMealAssignements()) {
  24. if (assignement.getMealSlot() == null) {
  25. output.message +=
  26. "Error: No meal for volunteer " + assignement.getVolonteer().getId().toString() + "\n";
  27. } else {
  28. output.assignements.add(new AssignementPair(assignement.getMealSlot().getId(),
  29. assignement.getVolonteer().getId()));
  30. }
  31. }
  32. return output;
  33. }
  34. public HardMediumSoftScore getScore() {
  35. return score;
  36. }
  37. public void setScore(HardMediumSoftScore score) {
  38. this.score = score;
  39. }
  40. public String getMessage() {
  41. return this.message;
  42. }
  43. public void setMessage(String msg) {
  44. this.message = msg;
  45. }
  46. public ArrayList<AssignementPair> getAssignements() {
  47. return this.assignements;
  48. }
  49. public void setExplanation(String explanation) {
  50. this.explanation = explanation;
  51. }
  52. public String getExplanation() {
  53. return this.explanation;
  54. }
  55. }