package fr.jaquin.bdlg.planner.domain; import java.util.ArrayList; import org.optaplanner.core.api.score.buildin.hardmediumsoft.HardMediumSoftScore; public class PlanningSolution { private ArrayList assignements; private String message = ""; private String explanation = ""; private HardMediumSoftScore score; public PlanningSolution() { assignements = new ArrayList(); } public static PlanningSolution from(Planning planning) { PlanningSolution output = new PlanningSolution(); output.setScore(planning.getScore()); for (Assignement assignement : planning.getAssignements()) { if (assignement.getVolonteer() == null) { output.message += "Error: No volunteer for slot " + assignement.getSlot().getId() + "\n"; } else { output.assignements.add( new AssignementPair(assignement.getSlot().getId(), assignement.getVolonteer().getId())); } } for (MealAssignement assignement : planning.getMealAssignements()) { if (assignement.getMealSlot() == null) { output.message += "Error: No meal for volunteer " + assignement.getVolonteer().getId().toString() + "\n"; } else { output.assignements.add(new AssignementPair(assignement.getMealSlot().getId(), assignement.getVolonteer().getId())); } } return output; } public HardMediumSoftScore getScore() { return score; } public void setScore(HardMediumSoftScore score) { this.score = score; } public String getMessage() { return this.message; } public void setMessage(String msg) { this.message = msg; } public ArrayList getAssignements() { return this.assignements; } public void setExplanation(String explanation) { this.explanation = explanation; } public String getExplanation() { return this.explanation; } }