package net.sourceforge.fenixedu.presentationTier.renderers.providers; import java.util.HashSet; import java.util.Set; import com.linkare.commons.metainfo.Linkare; import net.sourceforge.fenixedu.dataTransferObject.accounting.postingRule.CreateGratuityPostingRuleBean; import net.sourceforge.fenixedu.domain.DegreeCurricularPlan; import net.sourceforge.fenixedu.domain.ExecutionYear; import net.sourceforge.fenixedu.domain.administrativeOffice.AdministrativeOfficeType; import net.sourceforge.fenixedu.domain.degree.DegreeType; import net.sourceforge.fenixedu.domain.degree.degreeCurricularPlan.DegreeCurricularPlanState; import net.sourceforge.fenixedu.presentationTier.renderers.converters.DomainObjectKeyArrayConverter; import pt.ist.fenixWebFramework.renderers.DataProvider; import pt.ist.fenixWebFramework.renderers.components.converters.Converter; public class GraduationDegreeCurricularPlansProvider implements DataProvider { @Override public Converter getConverter() { return new DomainObjectKeyArrayConverter(); } @Linkare(author = "Paulo Zenida", comments = "Changed the code so that it is possible to get the execution year from the bean") @Override public Object provide(Object source, Object currentValue) { final Set result = new HashSet(); ExecutionYear executionYear = ExecutionYear.readCurrentExecutionYear(); if (source != null && source.getClass() == CreateGratuityPostingRuleBean.class) { executionYear = ((CreateGratuityPostingRuleBean) source).getExecutionYear(); } result.addAll(DegreeCurricularPlan.readByDegreeTypesAndStateWithExecutionDegreeForYear(DegreeType .getDegreeTypesFor(AdministrativeOfficeType.DEGREE), DegreeCurricularPlanState.ACTIVE, executionYear)); result.add(DegreeCurricularPlan.readEmptyDegreeCurricularPlan()); return result; } }