package pt.estgp.estgweb.domain;
import jomm.utils.StringsUtils;
import org.apache.log4j.Logger;
import pt.estgp.estgweb.Globals;
import pt.utl.ist.berserk.logic.serviceManager.IServiceManager;
import pt.utl.ist.berserk.logic.serviceManager.ServiceManager;
import java.util.ArrayList;
import java.util.List;
/**
* @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
<CourseUnit
> subscribedUnitsCurrentYearView =
null;
private List
<CourseUnit
> subscribedUnitsOldYearsView =
null;
private List
<CourseUnitAnnouncementImpl
> courseUnitAnnouncementsView =
null;
private List
<Course
> subscribedCoursesView =
null;
private List
<Course
> subscribedCoursesCurrentYearView =
null;
private List
<Course
> subscribedCoursesOldYearsView =
null;
public List
<Course
> getSubscribedCoursesView
()
{
getSubscribedUnitsView
();
return subscribedCoursesView
;
}
public List
<Course
> getSubscribedCoursesCurrentYearView
()
{
getSubscribedUnitsCurrentYearView
();
return subscribedCoursesCurrentYearView
;
}
public List
<Course
> getSubscribedCoursesOldYearsView
()
{
getSubscribedUnitsOldYearsView
();
return subscribedCoursesOldYearsView
;
}
public 1.5.0/docs/api/java/lang/String.html">String getManagedRole
() {
return STUDENT_ROLE
;
}
public List
<CourseUnit
> getSubscribedUnitsViewS1
()
{
return getUnitsSemestre
("S1",getSubscribedUnitsView
());
}
public List
<CourseUnit
> getSubscribedUnitsViewS2
()
{
return getUnitsSemestre
("S2",getSubscribedUnitsView
());
}
public List
<CourseUnit
> getSubscribedUnitsViewA
()
{
return getUnitsSemestre
("A",getSubscribedUnitsView
());
}
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
<CourseUnit
> getSubscribedUnitsCurrentYearViewS1
()
{
return getUnitsSemestre
("S1",getSubscribedUnitsCurrentYearView
());
}
public List
<CourseUnit
> getSubscribedUnitsCurrentYearViewS2
()
{
return getUnitsSemestre
("S2",getSubscribedUnitsCurrentYearView
());
}
public List
<CourseUnit
> getSubscribedUnitsCurrentYearViewA
()
{
return getUnitsSemestre
("A",getSubscribedUnitsCurrentYearView
());
}
public List
<CourseUnit
> getSubscribedUnitsCurrentYearView
()
{
if(subscribedUnitsCurrentYearView ==
null)
{
subscribedCoursesCurrentYearView =
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
()};
subscribedUnitsCurrentYearView =
(List
<CourseUnit
>) sm.
execute(null,
"LoadSubscribedUnitsCurrentYear", args, names
);
if(subscribedUnitsCurrentYearView ==
null)
subscribedUnitsCurrentYearView =
new ArrayList
<CourseUnit
>();
for(CourseUnit c: subscribedUnitsCurrentYearView
)
{
if(!subscribedCoursesCurrentYearView.
contains(c.
getCourse()))
{
subscribedCoursesCurrentYearView.
add(c.
getCourse());
}
}
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e,e
);
}
}
return subscribedUnitsCurrentYearView
;
}
public List
<CourseUnit
> getSubscribedUnitsOldYearsViewS1
()
{
return getUnitsSemestre
("S1",getSubscribedUnitsOldYearsView
());
}
public List
<CourseUnit
> getSubscribedUnitsOldYearsViewS2
()
{
return getUnitsSemestre
("S2",getSubscribedUnitsOldYearsView
());
}
public List
<CourseUnit
> getSubscribedUnitsOldYearsView
()
{
if(subscribedUnitsOldYearsView ==
null)
{
subscribedCoursesOldYearsView =
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
()};
subscribedUnitsOldYearsView =
(List
<CourseUnit
>) sm.
execute(null,
"LoadSubscribedUnitsOldYears", args, names
);
if(subscribedUnitsOldYearsView ==
null)
subscribedUnitsOldYearsView =
new ArrayList
<CourseUnit
>();
for(CourseUnit c: subscribedUnitsOldYearsView
)
{
if(!subscribedCoursesOldYearsView.
contains(c.
getCourse()))
{
subscribedCoursesOldYearsView.
add(c.
getCourse());
}
}
}
catch (1.5.0/docs/api/java/lang/Throwable.html">Throwable e
)
{
logger.
error(e,e
);
}
}
return subscribedUnitsOldYearsView
;
}
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 unitId,
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() == unitId
)
return true;
}
return false;
}
public void removeUnitLocaly
(CourseUnit unit
)
{
setLocalRemovedSubscribedUnits
(StringsUtils.
addElement(getLocalRemovedSubscribedUnits
(),
"" + unit.
getId(),
","));
setLocalSubscribedUnits
(StringsUtils.
removeElement(getLocalSubscribedUnits
(),
"" + unit.
getId(),
","));
}
public void addUnitLocaly
(CourseUnit unit
)
{
setLocalRemovedSubscribedUnits
(StringsUtils.
removeElement(getLocalRemovedSubscribedUnits
(),
"" + unit.
getId(),
","));
setLocalSubscribedUnits
(StringsUtils.
removeElement(getLocalSubscribedUnits
(),
"" + unit.
getId(),
","));
setLocalSubscribedUnits
(StringsUtils.
addElement(getLocalSubscribedUnits
(),
"" + unit.
getId(),
","));
}
public boolean isLocalRemovedUnit
(CourseUnit unit
)
{
return StringsUtils.
hasElement(getLocalRemovedSubscribedUnits
(),
"" + unit.
getId(),
",");
}
public boolean isLocalUnit
(CourseUnit unit
)
{
return StringsUtils.
hasElement(getLocalSubscribedUnits
(),
""+unit.
getId(),
",");
}
}