From 7f48de7c271db88a3576de3ccd0c89ef307763bf Mon Sep 17 00:00:00 2001
From: dan-kjel <dan-kjel@73ecded7-942e-4092-bab0-0e58ef0ee984>
Date: Tue, 1 Feb 2011 17:29:41 +0000
Subject: [PATCH] Lade till alla Project-relaterade klasser och skrev om
 eventDao till SciPro events

git-svn-id: svn://svn.dsv.su.se/scipro/scipro/trunk@43 73ecded7-942e-4092-bab0-0e58ef0ee984
---
 .../scipro/data/dao/interfaces/EventDao.java  |  4 ++--
 .../data/dao/interfaces/ProjectDao.java       | 15 ++++++++++++
 .../dao/interfaces/ProjectFollowerDao.java    |  7 ++++++
 .../dao/interfaces/ProjectScheduleDao.java    | 23 +++++++++++++++++++
 4 files changed, 47 insertions(+), 2 deletions(-)
 create mode 100644 src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectDao.java
 create mode 100644 src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectFollowerDao.java
 create mode 100644 src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectScheduleDao.java

diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/EventDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/EventDao.java
index e724e2d89e..94c81c97d6 100644
--- a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/EventDao.java
+++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/EventDao.java
@@ -5,6 +5,6 @@ import se.su.dsv.scipro.data.dataobjects.Event;
  * @author Richard Wilkinson - richard.wilkinson@jweekend.com
  *
  */
-public interface EventDao extends Dao<Event> {
+public interface EventDao extends LazyDeleteDao<Event> {
 
-}
+}
\ No newline at end of file
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectDao.java
new file mode 100644
index 0000000000..9d4b244482
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectDao.java
@@ -0,0 +1,15 @@
+package se.su.dsv.scipro.data.dao.interfaces;
+
+import java.util.List;
+
+import se.su.dsv.scipro.data.dataobjects.Project;
+import se.su.dsv.scipro.data.dataobjects.User;
+import se.su.dsv.scipro.data.enums.ProjectStatus;
+import se.su.dsv.scipro.data.enums.ProjectTeamMemberRoles;
+
+public interface ProjectDao extends Dao<Project>{
+	public List<Project> getProjectsByParticipant(final User user, final ProjectStatus projectStatus);
+	public int countProjectsByParticipant(final User user, final ProjectStatus projectStatus);
+	public List<Project> getProjectsByHeadSupervisor(final User user, final ProjectStatus projectStatus);
+	public List<Project> getProjectsByProjectTeamMember(final User user, final ProjectStatus projectStatus, final ProjectTeamMemberRoles teamRole);
+}
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectFollowerDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectFollowerDao.java
new file mode 100644
index 0000000000..cc24d423c9
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectFollowerDao.java
@@ -0,0 +1,7 @@
+package se.su.dsv.scipro.data.dao.interfaces;
+
+import se.su.dsv.scipro.data.dataobjects.ProjectFollower;
+
+public interface ProjectFollowerDao extends Dao<ProjectFollower> {
+
+}
diff --git a/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectScheduleDao.java b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectScheduleDao.java
new file mode 100644
index 0000000000..1e63360fee
--- /dev/null
+++ b/src/main/java/se/su/dsv/scipro/data/dao/interfaces/ProjectScheduleDao.java
@@ -0,0 +1,23 @@
+package se.su.dsv.scipro.data.dao.interfaces;
+
+import java.util.List;
+
+import se.su.dsv.scipro.data.dataobjects.Event;
+import se.su.dsv.scipro.data.dataobjects.ProjectSchedule;
+
+public interface ProjectScheduleDao extends Dao<ProjectSchedule>{
+	
+	public List<Event> getAllEventsByProjectSchedule(final ProjectSchedule ps);
+	public List<Event> getUpcomingEventsByProjectSchedule(final ProjectSchedule ps, boolean includeOldNotDoneEvents);
+	
+	/**
+	 * 
+	 * @param ps
+	 * @param eventIsDone true/false or null if you don't care
+	 * @return
+	 */
+	public List<Event> getOldEventsByProjectSchedule(final ProjectSchedule ps, final Boolean eventIsDone);
+	
+	public int countOverDueEvents(final ProjectSchedule ps);
+	
+}