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
);
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
) throws ServiceException
{
CourseUnitView cV = run
(id,initTeachers,initStudents,initBlog,userSession
);
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();
}
}