Salome HOME
Readers functionality is implemented.
[tools/siman.git] / Workspace / Siman-Common / src / org / splat / service / StudyService.java
index 347a0db89ff01f0803e66f352560fcf70affecda..507a5f3ff5244896b3d05df764685c8ee339dba7 100644 (file)
@@ -28,6 +28,7 @@ import org.splat.kernel.MultiplyDefinedException;
 import org.splat.service.dto.DocToCompareDTO;
 import org.splat.service.dto.DocumentDTO;
 import org.splat.service.dto.StudyFacadeDTO;
+import org.splat.service.dto.UserDTO;
 import org.splat.service.dto.StudyFacadeDTO.ScenarioDTO;
 
 /**
@@ -351,4 +352,30 @@ public interface StudyService {
         */
        String compare(List<DocToCompareDTO> docsList, final String userName)
                        throws IncompatibleDataException;
+       
+       /**
+        * Get readers of a given study.
+        * @param studyId the study id.
+        * @return list of user DTO corresponding to the study readers.
+        * @throws InvalidParameterException if no study with such id has been found in the database.
+        */
+       List<UserDTO> getReaders(final long studyId) throws InvalidParameterException;
+       
+       /**
+        * Add reader to a given study.
+        * @param studyId the study id.
+        * @param userId the user id.
+        * @return true if the user has been added as a reader
+        * @throws InvalidParameterException if no study or user with such id has been found in the database.
+        */
+       boolean addReader(final long studyId, final long userId) throws InvalidParameterException;
+
+       /**
+        * Remove reader from a given study.
+        * @param studyId the study id.
+        * @param userId the user id.
+        * @return true if the relation has been found and removed
+        * @throws InvalidParameterException if no study or user with such id has been found in the database.
+        */
+       boolean removeReader(final long studyId, final long userId) throws InvalidParameterException;
 }