DataHandler Error fixed
[staff/due1/sed-hs15-srs-purple.git] / src / main / java / ch / bfh / ti / srs / datahandler / DataHandler.java
index a0b79ed..850f39c 100644 (file)
-/*\r
- * Copyright (c) 2015 Berner Fachhochschule, Switzerland.\r
- *\r
- * Project Smart Reservation System.\r
- *\r
- * Distributable under GPL license. See terms of license at gnu.org.\r
- */\r
-package ch.bfh.ti.srs.datahandler;\r
-\r
-import ch.bfh.ti.srs.dataschema.User;\r
-\r
-/**\r
- * @author Michael Grossen\r
- */\r
-public interface DataHandler {\r
-       \r
-       /**\r
-        * Finds the user by userName param in the Datacontext and returns the User object or null if not found\r
-        * \r
-        * @param userName      userName of the user you are looking for\r
-        * @return                      <code>User</code>user object\r
-        *                                      <code>null</code>if no user found with this userName\r
-        */\r
-       public User findUser(String userName);\r
-       \r
-       /**\r
-        * Adds a user to the Datacontext from a given user object\r
-        * \r
-        * @param user                  User object\r
-        * @throws Exception\r
-        */\r
-       public void addUser(User user) throws Exception;\r
-}\r
+/*
+ * Copyright (c) 2015 Berner Fachhochschule, Switzerland.
+ *
+ * Project Smart Reservation System.
+ *
+ * Distributable under GPL license. See terms of license at gnu.org.
+ */
+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;
+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
+        */
+       public User findUser(String userName);
+
+       /**
+        * Adds a user to the Datacontext from a given 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 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 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
+        * @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 boolean addResource(Resource resource) throws Exception;
+
+       /**
+        * 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(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
+        * @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 boolean deleteResource(Resource resource);
+
+       /**
+        * get all the Resources from the datastorage
+        * 
+        * @return a set of Resources
+        */
+       public Set<Resource> getAllResources();
+}
+
+