package net.sourceforge.fenixedu.presentationTier.Action.academicAdministration; import java.io.Serializable; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; import net.sourceforge.fenixedu.domain.AcademicProgram; import net.sourceforge.fenixedu.domain.Degree; import net.sourceforge.fenixedu.domain.RootDomainObject; import net.sourceforge.fenixedu.domain.phd.PhdProgram; public class DegreeJurisdictionManagementBean implements Serializable { private static final long serialVersionUID = -3115602761325408245L; private static final Comparator COMPARATOR_BY_SIGLA = new Comparator() { @Override public int compare(AcademicProgram ap1, AcademicProgram ap2) { if (ap1 instanceof Degree && ap2 instanceof Degree) { Degree d1 = (Degree) ap1; Degree d2 = (Degree) ap2; return d1.getSigla().compareTo(d2.getSigla()); } if (ap1 instanceof PhdProgram && ap2 instanceof PhdProgram) { PhdProgram p1 = (PhdProgram) ap1; PhdProgram p2 = (PhdProgram) ap2; return p1.getAcronym().compareTo(p2.getAcronym()); } return 0; } }; private List preBologna; private List bachelors; private List masters; private List integratedMasters; private List dfas; private List deas; private List phds; private List specs; public DegreeJurisdictionManagementBean() { super(); init(); } public List getPreBologna() { return preBologna; } public void setPreBologna(List preBologna) { Collections.sort(preBologna, COMPARATOR_BY_SIGLA); this.preBologna = preBologna; } public List getBachelors() { return bachelors; } public void setBachelors(List bachelors) { Collections.sort(bachelors, COMPARATOR_BY_SIGLA); this.bachelors = bachelors; } public List getMasters() { return masters; } public void setMasters(List masters) { Collections.sort(masters, COMPARATOR_BY_SIGLA); this.masters = masters; } public List getIntegratedMasters() { return integratedMasters; } public void setIntegratedMasters(List integratedMasters) { Collections.sort(integratedMasters, COMPARATOR_BY_SIGLA); this.integratedMasters = integratedMasters; } public List getDfas() { return dfas; } public void setDfas(List dfas) { Collections.sort(dfas, COMPARATOR_BY_SIGLA); this.dfas = dfas; } public List getDeas() { return deas; } public void setDeas(List deas) { Collections.sort(deas, COMPARATOR_BY_SIGLA); this.deas = deas; } public List getPhds() { return phds; } public void setPhds(List phds) { Collections.sort(phds, COMPARATOR_BY_SIGLA); this.phds = phds; } public List getSpecs() { return specs; } public void setSpecs(List specs) { Collections.sort(specs, COMPARATOR_BY_SIGLA); this.specs = specs; } private void init() { List preBologna = new ArrayList(); List bachelors = new ArrayList(); List masters = new ArrayList(); List integratedMasters = new ArrayList(); List dfas = new ArrayList(); List deas = new ArrayList(); List phds = new ArrayList(); List specs = new ArrayList(); for (Degree degree : RootDomainObject.getInstance().getDegreesSet()) { switch (degree.getDegreeType()) { case DEGREE: preBologna.add(degree); break; case MASTER_DEGREE: preBologna.add(degree); break; case BOLONHA_DEGREE: bachelors.add(degree); break; case BOLONHA_MASTER_DEGREE: masters.add(degree); break; case BOLONHA_INTEGRATED_MASTER_DEGREE: integratedMasters.add(degree); break; case BOLONHA_ADVANCED_FORMATION_DIPLOMA: dfas.add(degree); break; case BOLONHA_ADVANCED_SPECIALIZATION_DIPLOMA: deas.add(degree); break; case BOLONHA_SPECIALIZATION_DEGREE: specs.add(degree); break; case EMPTY: specs.add(degree); break; } } for (PhdProgram phd : RootDomainObject.getInstance().getPhdProgramsSet()) { if (!deas.contains(phd.getDegree())) { phds.add(phd); } } setPreBologna(preBologna); setBachelors(bachelors); setMasters(masters); setIntegratedMasters(integratedMasters); setDfas(dfas); setDeas(deas); setPhds(phds); setSpecs(specs); } }