1 /* 2 * Copyright (C) 2017-2019 Centre National d'Etudes Spatiales (CNES). 3 * 4 * This library is free software; you can redistribute it and/or 5 * modify it under the terms of the GNU Lesser General Public 6 * License as published by the Free Software Foundation; either 7 * version 3.0 of the License, or (at your option) any later version. 8 * 9 * This library is distributed in the hope that it will be useful, 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 12 * Lesser General Public License for more details. 13 * 14 * You should have received a copy of the GNU Lesser General Public 15 * License along with this library; if not, write to the Free Software 16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, 17 * MA 02110-1301 USA 18 */ 19 package fr.cnes.doi.plugin.impl.db.service; 20 21 import java.util.List; 22 23 import fr.cnes.doi.exception.DOIDbException; 24 import fr.cnes.doi.db.model.DOIProject; 25 import fr.cnes.doi.db.model.DOIUser; 26 27 /** 28 * Interface between server and database 29 */ 30 public interface DOIDbDataAccessService { 31 32 /** 33 * Get all DOI users from data base 34 * 35 * @return list of DOIUser 36 * @throws DOIDbException When an Database exception happens 37 */ 38 public List<DOIUser> getAllDOIusers() throws DOIDbException; 39 40 /** 41 * Get all DOI projects from data base 42 * 43 * @return list of DOI projects 44 * @throws DOIDbException When an Database exception happens 45 */ 46 public List<DOIProject> getAllDOIProjects() throws DOIDbException; 47 48 /** 49 * Get Projects related to a given username 50 * 51 * @param username username 52 * @return List of projects 53 * @throws DOIDbException When an Database exception happens 54 */ 55 public List<DOIProject> getAllDOIProjectsForUser(String username) throws DOIDbException; 56 57 /** 58 * Get Users from a given project. 59 * 60 * @param suffix suffix 61 * @return List of DOIUser 62 * @throws DOIDbException When an Database exception happens 63 */ 64 public List<DOIUser> getAllDOIUsersForProject(int suffix) throws DOIDbException; 65 66 /** 67 * Add a DOI user 68 * 69 * @param username username 70 * @param admin True when the user is admin otherwise False 71 * @throws DOIDbException When an Database exception happens 72 */ 73 public void addDOIUser(String username, Boolean admin) throws DOIDbException; 74 75 /** 76 * Add a DOI user 77 * 78 * @param username username 79 * @param admin True when the user is admin otherwise False 80 * @param email email 81 * @throws DOIDbException When an Database exception happens 82 */ 83 public void addDOIUser(String username, Boolean admin, String email) throws DOIDbException; 84 85 /** 86 * Remove a DOI user 87 * 88 * @param username username 89 * @throws DOIDbException When an Database exception happens 90 */ 91 public void removeDOIUser(String username) throws DOIDbException; 92 93 /** 94 * Remove a DOI project 95 * 96 * @param suffix suffix 97 * @throws DOIDbException When an Database exception happens 98 */ 99 public void removeDOIProject(int suffix) throws DOIDbException; 100 101 /** 102 * Add a DOI project 103 * 104 * @param suffix suffix 105 * @param projectname project name 106 * @throws DOIDbException When an Database exception happens 107 */ 108 public void addDOIProject(int suffix, String projectname) throws DOIDbException; 109 110 /** 111 * Assign a DOI project to a user 112 * 113 * @param username user name 114 * @param suffix suffix related to a project 115 * @throws DOIDbException When an Database exception happens 116 */ 117 public void addDOIProjectToUser(String username, int suffix) throws DOIDbException; 118 119 /** 120 * Remove a DOI project from a user 121 * 122 * @param username user name 123 * @param suffix suffix related to a project 124 * @throws DOIDbException When an Database exception happens 125 */ 126 public void removeDOIProjectFromUser(String username, int suffix) throws DOIDbException; 127 128 /** 129 * Add admin right to a user 130 * 131 * @param username user name 132 * @throws DOIDbException When an Database exception happens 133 */ 134 public void setAdmin(String username) throws DOIDbException; 135 136 /** 137 * Remove admin right from a user 138 * 139 * @param username user name 140 * @throws DOIDbException When an Database exception happens 141 */ 142 public void unsetAdmin(String username) throws DOIDbException; 143 144 /** 145 * Check if user is an admin user 146 * 147 * @param username user name 148 * @return false if user is not admin or doesn't exist 149 * @throws DOIDbException When an Database exception happens 150 */ 151 public boolean isAdmin(String username) throws DOIDbException; 152 153 /** 154 * Check if user exists in the database 155 * 156 * @param username user name 157 * @throws DOIDbException When an Database exception happens 158 * @return false if user does not exist 159 */ 160 public boolean isUserExist(String username) throws DOIDbException; 161 162 /** 163 * Rename DOI project from its suffix. 164 * 165 * @param suffix suffix 166 * @param newprojectname new project name 167 * @throws DOIDbException When an Database exception happens 168 */ 169 public void renameDOIProject(int suffix, String newprojectname) throws DOIDbException; 170 171 /** 172 * Get Project name from its suffix. 173 * 174 * @param suffix suffix 175 * @return project name 176 * @throws fr.cnes.doi.exception.DOIDbException When an Database exception 177 * happens 178 */ 179 public String getDOIProjectName(int suffix) throws DOIDbException; 180 181 /** 182 * Add token 183 * 184 * @param token Adds a token to the database 185 * @throws fr.cnes.doi.exception.DOIDbException When an Database exception 186 * happens 187 */ 188 public void addToken(String token) throws DOIDbException; 189 190 /** 191 * Delete token 192 * 193 * @param token token to delete 194 * @throws fr.cnes.doi.exception.DOIDbException When an Database exception 195 * happens 196 */ 197 public void deleteToken(String token) throws DOIDbException; 198 199 /** 200 * Get tokens 201 * 202 * @return List of tokens 203 * @throws fr.cnes.doi.exception.DOIDbException When an Database exception 204 * happens 205 */ 206 public List<String> getTokens() throws DOIDbException; 207 208 /** 209 * Close and release all the Data access connections. 210 * 211 * @throws DOIDbException When an error occurs 212 */ 213 public void close() throws DOIDbException; 214 215 }