removeDegreeModule(); removeCurriculumGroup();
    public void delete() {    	createEnrolmentLog(EnrolmentAction.UNENROL);    	//TODO: falta ver se � dos antigos enrolments ou dos novos        final Registration registration = getStudentCurricularPlan().getRegistration();        removeExecutionPeriod();        removeStudentCurricularPlan();        Iterator<Attends> attendsIter = getAttendsIterator();        while (attendsIter.hasNext()) {            Attends attends = attendsIter.next();            attendsIter.remove();            attends.removeEnrolment();            if (!attends.hasAnyAssociatedMarks() && !attends.hasAnyStudentGroups()) {                boolean hasShiftEnrolment = false;                for (Shift shift : attends.getDisciplinaExecucao().getAssociatedShifts()) {                    if (shift.hasStudents(registration)) {                        hasShiftEnrolment = true;                        break;                    }                }                if (!hasShiftEnrolment) {                    attends.delete();                }            }        }        Iterator<EnrolmentEvaluation> evalsIter = getEvaluationsIterator();        while (evalsIter.hasNext()) {            EnrolmentEvaluation eval = evalsIter.next();            evalsIter.remove();            eval.delete();        }        Iterator<CreditsInAnySecundaryArea> creditsInAnysecundaryAreaIterator = getCreditsInAnySecundaryAreasIterator();        while (creditsInAnysecundaryAreaIterator.hasNext()) {            CreditsInAnySecundaryArea credits = creditsInAnysecundaryAreaIterator.next();            creditsInAnysecundaryAreaIterator.remove();            credits.delete();        }        Iterator<CreditsInScientificArea> creditsInScientificAreaIterator = getCreditsInScientificAreasIterator();        while (creditsInScientificAreaIterator.hasNext()) {            CreditsInScientificArea credits = creditsInScientificAreaIterator.next();            creditsInScientificAreaIterator.remove();            credits.delete();        }        Iterator<EquivalentEnrolmentForEnrolmentEquivalence> equivalentEnrolmentIterator = getEquivalentEnrolmentForEnrolmentEquivalencesIterator();        while (equivalentEnrolmentIterator.hasNext()) {            EquivalentEnrolmentForEnrolmentEquivalence equivalentEnrolment = equivalentEnrolmentIterator                    .next();            equivalentEnrolmentIterator.remove();            equivalentEnrolment.removeEquivalentEnrolment();            EnrolmentEquivalence equivalence = equivalentEnrolment.getEnrolmentEquivalence();            Enrolment enrolment = equivalence.getEnrolment();            equivalence.removeEnrolment();            enrolment.delete();            equivalentEnrolment.removeEnrolmentEquivalence();            equivalentEnrolment.delete();            equivalence.delete();        }        Iterator<EnrolmentEquivalence> equivalenceIterator = getEnrolmentEquivalencesIterator();        while (equivalenceIterator.hasNext()) {            EnrolmentEquivalence equivalence = equivalenceIterator.next();            equivalenceIterator.remove();            equivalence.removeEnrolment();            Iterator<EquivalentEnrolmentForEnrolmentEquivalence> equivalentRestrictionIterator = equivalence                    .getEquivalenceRestrictionsIterator();            while (equivalentRestrictionIterator.hasNext()) {                EquivalentEnrolmentForEnrolmentEquivalence equivalentRestriction = equivalentRestrictionIterator                        .next();                equivalentRestriction.removeEquivalentEnrolment();                equivalentRestrictionIterator.remove();                equivalentRestriction.removeEnrolmentEquivalence();                equivalentRestriction.delete();            }            equivalence.delete();        }        super.delete();    }