package pt.utl.ist.scripts.runOnce; import net.sourceforge.fenixedu.domain.Degree; import net.sourceforge.fenixedu.domain.candidacyProcess.IndividualCandidacy; import net.sourceforge.fenixedu.domain.candidacyProcess.IndividualCandidacySeriesGrade; import net.sourceforge.fenixedu.domain.candidacyProcess.secondCycle.SecondCycleIndividualCandidacy; import net.sourceforge.fenixedu.domain.candidacyProcess.secondCycle.SecondCycleIndividualCandidacySeriesGrade; import pt.ist.bennu.core.domain.Bennu; import pt.utl.ist.scripts.commons.AtomicScript; public class RepairMissedConnections extends AtomicScript { public static void main(String[] args) { AtomicScript.processWriteTransaction(new RepairMissedConnections()); } public boolean hasDegree(SecondCycleIndividualCandidacy ic, Degree degree) { for (IndividualCandidacySeriesGrade icsg : ic.getIndividualCandidacySeriesGrade()) { if (icsg.getDegree().equals(degree)) { return true; } } return false; } public void reconstruct(SecondCycleIndividualCandidacy secondCycleIndividualCandidacy) { for (Degree degree : secondCycleIndividualCandidacy.getSelectedDegrees()) { if (!hasDegree(secondCycleIndividualCandidacy, degree)) { SecondCycleIndividualCandidacySeriesGrade newSCICSeriesGrade = new SecondCycleIndividualCandidacySeriesGrade(); newSCICSeriesGrade.setDegree(degree); secondCycleIndividualCandidacy.getIndividualCandidacySeriesGrade().add(newSCICSeriesGrade); } } } @Override protected void run() throws Exception { System.out.println("Reparing..."); for (IndividualCandidacy sc : Bennu.getInstance().getIndividualCandidaciesSet()) { if (sc.getClass().equals(SecondCycleIndividualCandidacy.class)) { SecondCycleIndividualCandidacy scic = (SecondCycleIndividualCandidacy) sc; for (Degree degree : scic.getSelectedDegrees()) { SecondCycleIndividualCandidacySeriesGrade sg = scic.getSecondCycleIndividualCandidacySeriesGradeForDegree(degree); if (sg == null) { System.out.println("Making repair..."); SecondCycleIndividualCandidacySeriesGrade newSCICSeriesGrade = new SecondCycleIndividualCandidacySeriesGrade(); newSCICSeriesGrade.setDegree(degree); scic.getIndividualCandidacySeriesGrade().add(newSCICSeriesGrade); } } } } } }