/**
* Copyright © 2002 Instituto Superior Técnico
*
* This file is part of FenixEdu Academic.
*
* FenixEdu Academic is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* FenixEdu Academic is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with FenixEdu Academic. If not, see <http://www.gnu.org/licenses/>.
*/
package org.fenixedu.academic.service.services.alumni;
import org.apache.commons.lang.StringUtils;
import org.fenixedu.academic.domain.organizationalStructure.AcademicalInstitutionType;
import org.fenixedu.academic.domain.organizationalStructure.AcademicalInstitutionUnit;
import org.fenixedu.academic.domain.organizationalStructure.CountryUnit;
import org.fenixedu.academic.domain.organizationalStructure.Unit;
import org.fenixedu.academic.domain.organizationalStructure.UniversityUnit;
import org.fenixedu.academic.dto.alumni.formation.AlumniFormation;
import org.fenixedu.academic.util.MultiLanguageString;
import org.joda.time.YearMonthDay;
public class FormationManagement {
protected AcademicalInstitutionUnit getFormationInstitution(final AlumniFormation formation) {
AcademicalInstitutionUnit institutionUnit = formation.getInstitution();
if (institutionUnit == null
&& formation.getInstitutionType() != null
&& (formation.getInstitutionType().equals(AcademicalInstitutionType.FOREIGN_INSTITUTION) || formation
.getInstitutionType().equals(AcademicalInstitutionType.OTHER_INSTITUTION))) {
if (!StringUtils.isEmpty(formation.getForeignUnit())) {
institutionUnit =
UniversityUnit.createNewUniversityUnit(new MultiLanguageString(formation.getForeignUnit()), null, null,
null, new YearMonthDay(), null, getParentUnit(formation), null, null, false, null);
institutionUnit.setInstitutionType(formation.getInstitutionType());
}
}
return institutionUnit;
}
protected Unit getParentUnit(AlumniFormation formation) {
if (formation.isNationalInstitution() || formation.getCountryUnit() == null) {
return CountryUnit.getDefault();
}
return formation.getCountryUnit();
}
}