Subversion Repositories bacoAlunos

Rev

Rev 1312 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.services.courseunits;

import org.apache.log4j.Logger;
import pt.estgp.estgweb.domain.*;
import pt.estgp.estgweb.domain.dao.DaoFactory;
import pt.estgp.estgweb.domain.views.AnnouncementView;
import pt.estgp.estgweb.domain.views.CourseUnitSummaryView;
import pt.estgp.estgweb.domain.views.CourseUnitView;
import pt.estgp.estgweb.domain.views.CourseView;
import pt.estgp.estgweb.services.data.RepositoryService;
import pt.estgp.estgweb.services.expceptions.ServiceException;
import pt.utl.ist.berserk.logic.serviceManager.IService;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

/*
 * @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

/**
 * @author Jorge Machado
 *
 *
 * Created at 17/Out/2003 , 23:45:24
 *
 */

public class LoadCourseUnitService implements IService
{

    RepositoryService repositoryService = new RepositoryService();
    LoadCourseUnitAnnouncements loadCourseUnitAnnouncements = new LoadCourseUnitAnnouncements();

    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(LoadCourseUnitService.class);

    public CourseUnitView run(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession) throws ServiceException
    {
        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);
        return runCleared(id,initTeachers,initStudents,initBlog,userSession,DaoFactory.getCourseUnitDaoImpl().narrow(c));
    }

    public CourseUnitView runCleared(long id, boolean initTeachers, boolean initStudents, boolean initBlog, UserSession userSession,CourseUnit c) throws ServiceException
    {
        c.setCourseUnitEvaluation(DaoFactory.getCourseUnitEvaluationDaoImpl().narrow(c.getCourseUnitEvaluation()));
        c.setCourseUnitProgram(DaoFactory.getCourseUnitProgramDaoImpl().narrow(c.getCourseUnitProgram()));

        if(c == null)
            return null;

        CourseUnitView cV = new CourseUnitView(c,initTeachers,initStudents,initBlog);

        if(c.getProgramStreamId()!= null)
        {
            RepositoryFile repositoryFile = repositoryService.loadView(c.getProgramStreamId());
            if(repositoryFile != null)
            {
                cV.setProgramSize(repositoryFile.getLastVersion().getSize()/1024);
                cV.setExtension(repositoryFile.getLastVersion().getExtension());
            }
        }

        if(initTeachers)
        {
            List<AnnouncementView> announcementViews = loadCourseUnitAnnouncements.run(id,userSession);
            cV.setAnnouncements(announcementViews);

            List<CourseUnitSummaryView> summaryViews = new ArrayList<CourseUnitSummaryView>();
            if(c.getSummaries() != null)
            {
                for(CourseUnitSummary summary: c.getSummaries())
                {
                    summaryViews.add(new CourseUnitSummaryView(summary));
                }
            }
            cV.setSummaries(summaryViews);
        }
        return cV;
    }


    public CourseUnitView loadCourseUnitViewAndCourse(long id, boolean initTeachers, boolean initStudents, boolean initBlog, boolean initCourseView, UserSession userSession,CourseUnitImpl clearedUnit) throws ServiceException
    {

        CourseUnitView cV = runCleared(id, initTeachers, initStudents, initBlog, userSession, clearedUnit);
        if(initCourseView)
        {
            CourseView coV = new CourseView(cV.getCourseUnit().getCourse());
            cV.setCourseView(coV);
        }
        return cV;
    }

    public Set<StudentImpl> loadStudents(long id, UserSession userSession) throws ServiceException
    {
        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);

        Set<StudentImpl> students = c.getStudents();
        if(students != null)
            for(Student s: students)
            {
                s.getName();
            }
        return students;
    }

    public Set<TeacherImpl> loadTeachers(long id, UserSession userSession) throws ServiceException
    {
        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);

        Set<TeacherImpl> teachers = c.getTeachers();
        if(teachers != null)
            for(TeacherImpl t: teachers)
            {
                t.getName();
            }
        return teachers;
    }

    public Teacher loadResponsibleTeacher(long id, UserSession userSession) throws ServiceException
    {
        CourseUnit c = DaoFactory.getCourseUnitDaoImpl().get(id);

        if(c.getResponsableTeacher() != null)
            c.getResponsableTeacher().getName();

        return c.getResponsableTeacher();
    }

}