/** * 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.domain.candidacyProcess; import java.io.Serializable; import java.util.Set; import java.util.UUID; import org.apache.commons.lang.StringUtils; import org.fenixedu.academic.domain.ExecutionYear; import org.fenixedu.academic.domain.organizationalStructure.Unit; import org.fenixedu.academic.domain.organizationalStructure.UnitName; import org.fenixedu.academic.dto.alumni.formation.IFormation; public class FormationBean implements Serializable, IFormation { /** * */ private static final long serialVersionUID = 1L; private static final int FIRST_YEAR = 1933; private String formationBeginYear; private String formationEndYear; private Formation formation; private String designation; private Boolean concluded; private String institutionName; private Unit institutionUnit; private String id; private String conclusionGrade; private ExecutionYear conclusionExecutionYear; public FormationBean(Boolean hasConcluded) { this.id = UUID.randomUUID().toString(); this.concluded = hasConcluded; setConclusionGrade(""); } public FormationBean(Formation formation) { this.id = UUID.randomUUID().toString(); this.setFormation(formation); this.setFormationBeginYear(formation.getBeginYear()); this.setFormationEndYear(formation.getYear()); this.setDesignation(formation.getDesignation()); this.setConcluded(formation.getConcluded()); setInstitutionUnit(formation.getInstitution()); setInstitutionName(formation.getInstitution().getName()); setConclusionGrade(formation.getConclusionGrade()); setConclusionExecutionYear(formation.getConclusionExecutionYear()); } public String getFormationBeginYear() { return formationBeginYear; } public void setFormationBeginYear(String formationBeginYear) { this.formationBeginYear = formationBeginYear; } public String getFormationEndYear() { return formationEndYear; } public void setFormationEndYear(String formationEndYear) { this.formationEndYear = formationEndYear; } public Formation getFormation() { return formation; } public void setFormation(Formation formation) { this.formation = formation; } @Override public int getFirstYear() { return FIRST_YEAR; } public int getLastYear() { return Integer.valueOf(ExecutionYear.readLastExecutionYear().getYear()).intValue(); } public String getDesignation() { return this.designation; } public void setDesignation(String designation) { this.designation = designation; } public Boolean isConcluded() { return this.concluded; } public void setConcluded(Boolean hasConcluded) { this.concluded = hasConcluded; } public String getInstitutionName() { return this.institutionName; } public void setInstitutionName(String value) { this.institutionName = value; } public Unit getInstitutionUnit() { return this.institutionUnit; } public void setInstitutionUnit(Unit unit) { this.institutionUnit = unit; } public UnitName getInstitutionUnitName() { return (institutionUnit == null) ? null : institutionUnit.getUnitName(); } public void setInstitutionUnitName(UnitName institutionUnitName) { this.institutionUnit = (institutionUnitName == null) ? null : institutionUnitName.getUnit(); } public String getId() { return this.id; } public String getConclusionGrade() { return this.conclusionGrade; } public void setConclusionGrade(String value) { this.conclusionGrade = value; } public ExecutionYear getConclusionExecutionYear() { return this.conclusionExecutionYear; } public void setConclusionExecutionYear(ExecutionYear executionYear) { this.conclusionExecutionYear = executionYear; } public Boolean validate(Set<String> designationErrorSet, Set<String> institutionErrorSet, Set<String> durationErrorSet) { if (StringUtils.isEmpty(this.designation)) { designationErrorSet.add("error.formation.designation.required"); } if (StringUtils.isEmpty(this.formationBeginYear)) { durationErrorSet.add("error.formation.begin.year.required"); } if (this.institutionUnit == null) { institutionErrorSet.add("error.formation.institution.unit.required"); } if (StringUtils.isEmpty(this.formationEndYear)) { durationErrorSet.add("error.formation.end.year.required"); } if (!StringUtils.isEmpty(this.formationBeginYear) && !StringUtils.isEmpty(this.formationEndYear)) { int beginYear = Integer.parseInt(this.formationBeginYear); int endYear = Integer.parseInt(this.formationEndYear); if (endYear < beginYear) { durationErrorSet.add("error.formation.end.year.greater.than.begin.year"); } } return !designationErrorSet.isEmpty() || institutionErrorSet.isEmpty() || !durationErrorSet.isEmpty(); } }