DataHandler Error fixed
[staff/due1/sed-hs15-srs-purple.git] / src / main / java / ch / bfh / ti / srs / datahandler / DataHandler.java
index 4cbf576..850f39c 100644 (file)
@@ -7,6 +7,10 @@
  */
 package ch.bfh.ti.srs.datahandler;
 
+import java.util.List;
+import java.util.Set;
+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,164 @@ 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
+        * @return returns a boolean whether the user was made or not
         * @throws Exception
+        *             if some property of the specified element prevents it from
+        *             being added the Datacontext
         */
-       public void addUser(User user) throws Exception;
+       public boolean addUser(User user) throws Exception;
+
+       /**
+        * Edit a User with the same Name.
+        * @param user
+        *            the new User 
+        * @return a boolean whether the user was edited or not
+        */
+       public boolean editUser(User user);
        
        /**
-        * 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 resource 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
+        * @return returns a boolean whether the resource was made or not
         * @throws Exception
+        *             if some property of the specified element prevents it from
+        *             being added the Datacontext
         */
-       public void addResource(Resource resource) throws Exception;
-       
+       public boolean 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>List</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>List</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>List</code> with the reservation objects
+        */
+       public List<Reservation> userReservations(User user);
+
+       /**
+        * Finds all reservations
+        * @return <code>List</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
+        * @return a boolean whether the reservation was made or not
+        * @throws Exception
+        *             if some property of the specified element prevents it from
+        *             being added the Datacontext
+        */
+       public boolean addReservation(Reservation reservation) throws Exception;
+
+       /**
+        * Saves the current changes on the local data to the datastorage
+        */
+       public void saveChanges();
+
+       /**
+        * Synchronizes the local data with the datastorage
+        * @param discardChanges
+        *            <code>true</code> do not try to save the changes
+        *            <code>false</code> try to save the changes
         * @throws Exception
+        *             no implementation for <code>true</code> in this DataHandler
+        *             possible
+        */
+       public void refresh(boolean discardChanges) throws Exception;
+
+       /**
+        * Edit a Reservation with the same ID.
+        * @param reservation
+        *            the new Reservation 
+        * @return a boolean whether the reservation was edited or not
+        */
+       public boolean editReservation(Reservation reservation);
+
+       /**
+        * deletes a Reservation from the datastorage
+        * @param reservation
+        *            the Reservation to remove
+        * @return a boolean whether the reservation was deleted or not
+        */
+       public boolean deleteReservation(Reservation reservation);
+
+       /**
+        * Edit a Resource with the same ID.
+        * @param resource
+        *            the new Resource 
+        * @return a boolean whether the resource was edited or not
+        */
+       public boolean editResource(Resource resource);
+
+       /**
+        * deletes a Resource from the datastorage
+        * @param resource
+        *            the Resource to remove
+        * @return a boolean whether the resource was deleted or not
         */
-       public void addReservation(Reservation reservation)throws Exception;
+       public boolean deleteResource(Resource resource);
+
+       /**
+        * get all the Resources from the datastorage
+        * 
+        * @return a set of Resources
+        */
+       public Set<Resource> getAllResources();
 }
+
+