DataHandler angepasst
[staff/due1/sed-hs15-srs-purple.git] / src / main / java / ch / bfh / ti / srs / datahandler / DataHandler.java
index 4cbf576..6fc44bd 100644 (file)
@@ -7,6 +7,10 @@
  */
 package ch.bfh.ti.srs.datahandler;
 
+import java.util.HashSet;
+import java.util.List;
+import java.util.UUID;
+
 import ch.bfh.ti.daterange.DateRange;
 import ch.bfh.ti.srs.dataschema.Reservation;
 import ch.bfh.ti.srs.dataschema.Resource;
@@ -16,56 +20,91 @@ import ch.bfh.ti.srs.dataschema.User;
  * @author Michael Grossen
  */
 public interface DataHandler {
-       
+
        /**
-        * Finds the user by userName param in the Datacontext and returns the User object or null if not found
-        * 
-        * @param userName      userName of the user you are looking for
-        * @return                      <code>User</code>user object
-        *                                      <code>null</code>if no user found with this userName
+        * Finds the user by userName param in the Datacontext and returns the User
+        * object or null if not found
+        * @param userName
+        *            userName of the user you are looking for
+        * @return <code>User</code>user object <code>null</code>if no user found
+        *         with this userName
         */
        public User findUser(String userName);
-       
+
        /**
         * Adds a user to the Datacontext from a given User object
-        * 
-        * @param user                  User object
+        * @param user
+        *            User object
         * @throws Exception
         */
        public void addUser(User user) throws Exception;
-       
+
        /**
-        * Finds the resourceName in the Datacontext and returns the Resource object or null if not found
-        * 
-        * @param resourceName  resource name of the recource you are looking for
-        * @return                              <code>Resource</code>resource object
-        *                                              <code>null</code>if no resource found with this recourceName
+        * Finds the resourceName in the Datacontext and returns the Resource object
+        * or null if not found
+        * @param resourceName
+        *            resource name of the recource you are looking for
+        * @return <code>Resource</code>resource object <code>null</code>if no
+        *         resource found with this recourceName
         */
        public Resource findResource(String resourceName);
-       
+
        /**
         * Adds a resource to the Datacontext from a given Recource object
-        * 
-        * @param resource                      Resource object
+        * @param resource
+        *            Resource object
         * @throws Exception
         */
        public void addResource(Resource resource) throws Exception;
-       
+
        /**
-        * Finds the reservation by resource and daterange param in the Datacontext and returns the Reservation object or null if not found
-        * 
-        * @param       resource        resource of the Reservation you are looking for
-        *                      daterange       daterange of the Reservation you are looking for
-        * @return                              <code>Reservation</code>reservation object
-        *                                              <code>null</code>if no reservation found with this resource and this daterange
+        * Finds the reservation by the id param in the Datacontext and returns the
+        * Reservation object or null if not found
+        * @param id
+        *            id of the Reservation you are looking for
+        * @return <code>Reservation</code>reservation object <code>null</code>if no
+        *         reservation found with this ID
         */
-       public Reservation findReservation(Resource resource, DateRange daterange);
-       
+       public Reservation findReservation(UUID id);
+
+       /**
+        * Finds a group of reservations by their GroupId param in the Datacontext
+        * and returns the Reservation object or null if not found
+        * @param groupId
+        *            id of the Group Reservations you are looking for
+        * @return <code>ArrayList</code> with the reservation objects
+        */
+       public List<Reservation> findGroupReservations(UUID groupId);
+
+       /**
+        * Finds reservations that overlaps with the given DateRange and returns the
+        * Reservation objects or null if not found
+        * @param range
+        *            the range you want to get overlapping reservations for
+        * @return <code>ArrayList</code> with the reservation objects
+        */
+       public List<Reservation> overlaps(DateRange range);
+
+       /**
+        * Finds all reservations for the specific User
+        * @param user
+        *            the user you want to get all the reservations for
+        * @return <code>ArrayList</code> with the reservation objects
+        */
+       public List<Reservation> userReservations(User user);
+
+       /**
+        * Finds all reservations
+        * @return <code>ArrayList</code> with the all reservation
+        *         objects
+        */
+       public List<Reservation> findAllReservations();
+
        /**
         * Adds a reservation to the Datacontext from a given Reservation object
-        * 
-        * @param reservation                   Reservation object
+        * @param reservation
+        *            Reservation object
         * @throws Exception
         */
-       public void addReservation(Reservation reservation)throws Exception;
+       public void addReservation(Reservation reservation) throws Exception;
 }