Subversion Repositories bacoAlunos

Rev

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

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;
    }
}