package pt.utl.ist.scripts.runOnce.phd; import net.sourceforge.fenixedu.domain.phd.ThesisSubject; import net.sourceforge.fenixedu.domain.phd.ThesisSubjectOrder; import pt.ist.bennu.core.domain.Bennu; import pt.utl.ist.fenix.tools.util.i18n.Language; import pt.utl.ist.scripts.commons.AtomicScript; public class FixThesisSubjectOrders extends AtomicScript { private final boolean PERFORM_CHANGES = true; @Override protected void run() throws Exception { for (ThesisSubject thesisSubject : Bennu.getInstance().getThesisSubjectsSet()) { System.out.println("Processing thesis subject: " + thesisSubject.getName().getContent(Language.en)); for (ThesisSubjectOrder subjectOrder : thesisSubject.getThesisSubjectOrders()) { System.out.println("Processing thesis subject order: " + subjectOrder.getExternalId()); if (!subjectOrder.hasPhdIndividualProgramProcess()) { System.out.println("Found a thesis subject order without PhdProcess."); if (PERFORM_CHANGES) { subjectOrder.delete(); } } else { if (PERFORM_CHANGES) { subjectOrder.setRootDomainObject(Bennu.getInstance()); } } } } } public static void main(String[] args) { processWriteTransaction(new FixThesisSubjectOrders()); System.exit(0); } }