package pt.estgp.estgweb.domain;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import java.util.Set;
import java.util.HashSet;
import java.util.List;
import java.util.ArrayList;
import org.apache.log4j.Logger;
/**
* @author Jorge Machado
* @date 28/Fev/2008
* @time 12:51:32
* @see pt.estgp.estgweb
*/
public class StudentImpl
extends Student
{
public static final 1.5.0/docs/api/java/lang/String.html">String STUDENT_ROLE = Globals.
STUDENT_ROLE;
public 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(StudentImpl.
class);
private List
<CourseUnit
> subscribedUnitsView =
null;
private List
<CourseUnitAnnouncementImpl
> courseUnitAnnouncementsView =
null;
private List
<Course
> subscribedCoursesView =
null;
public List
<Course
> getSubscribedCoursesView
()
{
getSubscribedUnitsView
();
return subscribedCoursesView
;
}
public 1.5.0/docs/api/java/lang/String.html">String getManagedRole
() {
return STUDENT_ROLE
;
}
public List
<CourseUnit
> getSubscribedUnitsView
()
{
if(subscribedUnitsView ==
null)
{
subscribedCoursesView =
new ArrayList
<Course
>();
try
{
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{"serializable"};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{getId
()};
subscribedUnitsView =
(List
<CourseUnit
>) sm.
execute(null,
"LoadSubscribedUnits", args, names
);
if(subscribedUnitsView ==
null)
subscribedUnitsView =
new ArrayList
<CourseUnit
>();
for(CourseUnit c: subscribedUnitsView
)
{
if(!subscribedCoursesView.
contains(c.
getCourse()))
{
subscribedCoursesView.
add(c.
getCourse());
}
}
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e,e
);
}
}
return subscribedUnitsView
;
}
public List
<CourseUnitAnnouncementImpl
> getCourseUnitAnnouncementsView
()
{
if(courseUnitAnnouncementsView ==
null)
{
try
{
IServiceManager sm = ServiceManager.
getInstance();
1.5.0/docs/api/java/lang/String.html">String[] names =
new 1.5.0/docs/api/java/lang/String.html">String[]{"serializable"};
5+0%2Fdocs%2Fapi+Object">Object[] args =
new 5+0%2Fdocs%2Fapi+Object">Object[]{getId
()};
courseUnitAnnouncementsView =
(List
<CourseUnitAnnouncementImpl
>) sm.
execute(null,
"LoadSubscribedUnitsAnnouncements", args, names
);
if(courseUnitAnnouncementsView ==
null)
courseUnitAnnouncementsView =
new ArrayList
<CourseUnitAnnouncementImpl
>();
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e,e
);
}
}
return courseUnitAnnouncementsView
;
}
public boolean hasCourseUnit
(CourseUnit courseUnit
)
{
return hasCourseUnit
(courseUnit.
getId(),
false);
}
public boolean hasCourseUnit
(long id,
boolean transaction
)
{
List
<CourseUnit
> cUnits
;
if(transaction
)
cUnits =
new ArrayList
<CourseUnit
>(getSubscribedUnits
());
else
cUnits = getSubscribedUnitsView
();
if(cUnits ==
null)
return false;
for(CourseUnit c: cUnits
)
{
if(c.
getId() == id
)
return true;
}
return false;
}
}