/**
* 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.dto.directiveCouncil;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.fenixedu.academic.domain.Department;
import org.fenixedu.academic.domain.ExecutionSemester;
public class DepartmentSummaryElement implements Serializable {
public enum SummaryControlCategory {
BETWEEN_0_20, BETWEEN_20_40, BETWEEN_40_60, BETWEEN_60_80, BETWEEN_80_100;
}
public DepartmentSummaryElement(Department department, ExecutionSemester executionSemester) {
setDepartment(department);
setExecutionSemester(executionSemester);
}
private Department department;
private ExecutionSemester executionSemester;
private SummaryControlCategory summaryControlCategory;
private Map<SummaryControlCategory, List<ExecutionCourseSummaryElement>> executionCoursesResume;
public boolean getHasResumeData() {
return getExecutionCoursesResume() != null && !getExecutionCoursesResume().isEmpty();
}
public List<ExecutionCourseSummaryElement> getExecutionCourses() {
List<ExecutionCourseSummaryElement> returnList = new ArrayList<ExecutionCourseSummaryElement>();
if (getSummaryControlCategory() == null) {
for (List<ExecutionCourseSummaryElement> ecList : getExecutionCoursesResume().values()) {
returnList.addAll(ecList);
}
} else {
if (getExecutionCoursesResume().get(getSummaryControlCategory()) != null) {
returnList = getExecutionCoursesResume().get(getSummaryControlCategory());
}
}
return returnList;
}
public int getNumberOfExecutionCoursesWithin020() {
if (getExecutionCoursesResume() != null) {
List<ExecutionCourseSummaryElement> executionCourses =
getExecutionCoursesResume().get(SummaryControlCategory.BETWEEN_0_20);
return executionCourses != null ? executionCourses.size() : 0;
} else {
return 0;
}
}
public int getNumberOfExecutionCoursesWithin2040() {
if (getExecutionCoursesResume() != null) {
List<ExecutionCourseSummaryElement> executionCourses =
getExecutionCoursesResume().get(SummaryControlCategory.BETWEEN_20_40);
return executionCourses != null ? executionCourses.size() : 0;
} else {
return 0;
}
}
public int getNumberOfExecutionCoursesWithin4060() {
if (getExecutionCoursesResume() != null) {
List<ExecutionCourseSummaryElement> executionCourses =
getExecutionCoursesResume().get(SummaryControlCategory.BETWEEN_40_60);
return executionCourses != null ? executionCourses.size() : 0;
} else {
return 0;
}
}
public int getNumberOfExecutionCoursesWithin6080() {
if (getExecutionCoursesResume() != null) {
List<ExecutionCourseSummaryElement> executionCourses =
getExecutionCoursesResume().get(SummaryControlCategory.BETWEEN_60_80);
return executionCourses != null ? executionCourses.size() : 0;
} else {
return 0;
}
}
public int getNumberOfExecutionCoursesWithin80100() {
if (getExecutionCoursesResume() != null) {
List<ExecutionCourseSummaryElement> executionCourses =
getExecutionCoursesResume().get(SummaryControlCategory.BETWEEN_80_100);
return executionCourses != null ? executionCourses.size() : 0;
} else {
return 0;
}
}
public int getNumberOfExecutionCoursesWithin0100() {
return getNumberOfExecutionCoursesWithin020() + getNumberOfExecutionCoursesWithin2040()
+ getNumberOfExecutionCoursesWithin4060() + getNumberOfExecutionCoursesWithin6080()
+ getNumberOfExecutionCoursesWithin80100();
}
public Department getDepartment() {
return department;
}
public void setDepartment(Department department) {
this.department = department;
}
public Map<SummaryControlCategory, List<ExecutionCourseSummaryElement>> getExecutionCoursesResume() {
return executionCoursesResume;
}
public void setExecutionCoursesResume(Map<SummaryControlCategory, List<ExecutionCourseSummaryElement>> executionCoursesResume) {
this.executionCoursesResume = executionCoursesResume;
}
public ExecutionSemester getExecutionSemester() {
return executionSemester;
}
public void setExecutionSemester(ExecutionSemester executionSemester) {
this.executionSemester = executionSemester;
}
public String getSummaryControlCategoryString() {
if (getSummaryControlCategory() != null) {
return getSummaryControlCategory().toString();
}
return "";
}
public SummaryControlCategory getSummaryControlCategory() {
return summaryControlCategory;
}
public void setSummaryControlCategory(SummaryControlCategory summaryControlCategory) {
this.summaryControlCategory = summaryControlCategory;
}
public boolean isToDisplayCategoryLink020() {
return getNumberOfExecutionCoursesWithin020() != 0 && getSummaryControlCategory() != SummaryControlCategory.BETWEEN_0_20;
}
public boolean isToDisplayCategoryLink2040() {
return getNumberOfExecutionCoursesWithin2040() != 0
&& getSummaryControlCategory() != SummaryControlCategory.BETWEEN_20_40;
}
public boolean isToDisplayCategoryLink4060() {
return getNumberOfExecutionCoursesWithin4060() != 0
&& getSummaryControlCategory() != SummaryControlCategory.BETWEEN_40_60;
}
public boolean isToDisplayCategoryLink6080() {
return getNumberOfExecutionCoursesWithin6080() != 0
&& getSummaryControlCategory() != SummaryControlCategory.BETWEEN_60_80;
}
public boolean isToDisplayCategoryLink80100() {
return getNumberOfExecutionCoursesWithin80100() != 0
&& getSummaryControlCategory() != SummaryControlCategory.BETWEEN_80_100;
}
public boolean isToDisplayCategoryLink0100() {
return getNumberOfExecutionCoursesWithin0100() != 0 && getSummaryControlCategory() != null;
}
}