001 /** ===================================================================== 002 * 003 * File Name : $Id: FaultService.java,v 1.10 2008/01/15 11:08:16 cb Exp $ 004 * 005 * Description 006 * ----------- 007 * 008 * See javadoc comment 009 * 010 * ===================================================================== 011 * 012 * @Author : Craige Bevil 013 * Control Software Group 014 * Isaac Newton Group of Telescopes 015 * 016 * ===================================================================== 017 * 018 * Modification Log 019 * 020 * Vers Date Author Reason 021 * ---- ---- ------ ------ 022 * 1 C.Bevil First Release 023 * 024 * Commissioning Notes 025 * ------------------- 026 * 027 * None 028 * 029 * ===================================================================== 030 * 031 * @Version : $Id: FaultService.java,v 1.10 2008/01/15 11:08:16 cb Exp $ 032 * 033 * @Author : $Author: cb $ 034 * 035 * Header : $Header: /opt/INGsrc/src/CVS/softproj/FaultDatabase/src/FaultDatabase/FaultDatabase/src/GWTApplication/client/FaultService.java,v 1.10 2008/01/15 11:08:16 cb Exp $ 036 * 037 * Log : $Log: FaultService.java,v $ 038 * Log : Revision 1.10 2008/01/15 11:08:16 cb 039 * Log : Ran through PMD and sorted out the javadoc so that we could export the 040 * Log : javadoc to the javadoc repository. 041 * Log : 042 * Log : Revision 1.9 2007/12/12 15:23:37 cb 043 * Log : Added the new printer option 044 * Log : 045 * Log : Revision 1.8 2007/10/18 08:43:50 cb 046 * Log : Support for decommissioned instruments has been added to the system 047 * Log : 048 * Log : Revision 1.7 2007/10/08 15:39:10 cb 049 * Log : Added the method which can be used to send an email to the user to 050 * Log : inform him that a fault has been changed to the servlet interface 051 * Log : 052 * Log : Revision 1.6 2007/10/08 09:32:50 cb 053 * Log : Modified to allow and review the user to change the faults which he is 054 * Log : subscribed to. 055 * Log : 056 * Log : Revision 1.5 2007/08/23 15:28:23 cb 057 * Log : Modified the createFault method to raise an exception if the fault 058 * Log : could not be raised. 059 * Log : 060 * Log : Revision 1.4 2007/08/17 14:26:44 cb 061 * Log : Updated for lastest prototype incorporating a lot of Nikos comments 062 * Log : 063 * Log : Revision 1.3 2007/08/01 13:00:07 cb 064 * Log : First prototype after import 065 * Log : 066 * Log : Revision 1.2 2007/07/13 10:54:08 cb 067 * Log : Complete interface prototype 068 * Log : 069 * Log : Revision 1.1.1.1 2007/06/01 08:33:26 cb 070 * Log : Imported using TkCVS 071 * Log : 072 * 073 * =====================================================================*/ 074 075 package GWTApplication.client; 076 077 import com.google.gwt.user.client.rpc.RemoteService; 078 import java.util.*; 079 080 public interface FaultService extends RemoteService { 081 082 /** 083 * @gwt.typeArgs <GWTApplication.client.Person> 084 */ 085 086 public ArrayList getTelescopeOperators(boolean getOldStaff) throws UnableToGetListException; 087 088 /** 089 * @gwt.typeArgs <GWTApplication.client.Person> 090 */ 091 092 public ArrayList getDutyTechnicians(boolean getOldStaff) throws UnableToGetListException; 093 094 /** 095 * @gwt.typeArgs <GWTApplication.client.Person> 096 */ 097 098 public ArrayList getSupportAstronomers(boolean getOldStaff) throws UnableToGetListException; 099 100 /** 101 * @gwt.typeArgs <GWTApplication.client.Site> 102 */ 103 104 public ArrayList getSites() throws UnableToGetListException; 105 106 /** 107 * @gwt.typeArgs <GWTApplication.client.State> 108 */ 109 110 public ArrayList getStates() throws UnableToGetListException; 111 112 /** 113 * Return the names of all of the instrument to the 114 * caller which are recalled from the fault database table. 115 * <b>INSTRUMENT</b>. 116 * <P> 117 * @return ArrayList A array which contains objects of type 118 * <b>Instrument</b>. 119 * @gwt.typeArgs <GWTApplication.client.Instrument> 120 */ 121 122 public ArrayList getInstruments(boolean allInstruments) throws UnableToGetListException; 123 124 /** 125 * Return the names of all of the severity to the 126 * caller which are recalled from the fault database table. 127 * <b>SEVERITY</b>. 128 * <P> 129 * @return ArrayList A array which contains objects of type 130 * <b>Severity</b>. 131 * @gwt.typeArgs <GWTApplication.client.Severity> 132 */ 133 134 public ArrayList getSeverity() throws UnableToGetListException; 135 136 /** 137 * Return the names of all of the FaultType to the 138 * caller which are recalled from the fault database table. 139 * <b>FAULTTYPE</b>. 140 * <P> 141 * @return ArrayList A array which contains objects of type 142 * <b>FaultType</b>. 143 * @gwt.typeArgs <GWTApplication.client.FaultType> 144 */ 145 146 public ArrayList getFaultType() throws UnableToGetListException; 147 148 /** 149 * Return the names of all of the system to the 150 * caller which are recalled from the fault database table. 151 * <b>SITES</b>. 152 * <P> 153 * @return ArrayList A array which contains objects of type 154 * <b>System</b>. 155 * @gwt.typeArgs <GWTApplication.client.FDBSystem> 156 */ 157 158 public ArrayList getSystems() throws UnableToGetListException; 159 160 /** 161 * Return the names of all of the staff members to the 162 * caller which are recalled from the fault database table. 163 * <b>STAFFMEMBER</b>. 164 * <P> 165 * 166 * @return ArrayList A array which contains objects of type 167 * <b>Person</b>. 168 * @gwt.typeArgs <GWTApplication.client.Person> 169 */ 170 171 public ArrayList getStaffMembers(boolean getOldStaff) throws UnableToGetListException; 172 173 public Integer createFault (Fault newFault) throws UnableToCreateFaultException; 174 175 /** 176 * Get all faults which go back to a specific date which has been 177 * specified by the caller. 178 * <P> 179 * @param TimeWindow The date which we are to search back to. If this is set 180 * to null then we search for all outstanding faults. 181 * @param locale The locale in which we are to search in. 182 * @return ArrayList This is an array of type fault which will 183 * contain the details of all of the faults which were found as 184 * part of the search. 185 * @gwt.typeArgs <GWTApplication.client.Fault> 186 */ 187 188 public ArrayList getQuickViewFaultData (final int TimeWindow,final String locale); 189 190 public boolean updateFault(final Fault updatedFault,final String locale) throws UnableToUpdateFaultException; 191 192 public Fault getFaultDetails(final Integer defectNumber,final String locale); 193 194 public Solution getSolutionDetails (final Integer DefectNumber); 195 196 public String calculateTotalAmountOfTimeSpentOnFault (final int FaultNumber); 197 198 public void updateSolutionDetails(final Solution NewSolutionDetails); 199 200 public Workaround getWorkaroundDetails (final Integer DefectNumber); 201 202 public void updateWorkaroundDetails(final Workaround NewWorkaroundDetails); 203 204 public void updateCommentDetails(final Comment NewCommentDetails); 205 206 /** 207 * Get all of the comments which are associated with the specified fault 208 * <P> 209 * @param DefectNumber The defect number of the fault 210 * @return ArrayList This is an array of type comment which will 211 * contain the details of all of the comments which were found as 212 * part of the database query. 213 * @gwt.typeArgs <GWTApplication.client.Comment> 214 */ 215 216 public ArrayList getCommentDetails (final Integer DefectNumber); 217 218 public AuthenticationDetails authenticateUser (final String UserIdentifier, final String Password) throws UserAuthenticationFailedException; 219 220 /** 221 * Get the list of people who are not in the group specified. 222 * <P> 223 * @param GroupToExclude The name of the group which contains the people that are to be excluded 224 * @return ArrayList An ArrayList of type Person. 225 * @gwt.typeArgs <GWTApplication.client.Person> 226 */ 227 228 public ArrayList getMembersOfStaffNotInGroup(final Integer GroupToExclude) throws UnableToGetListException; 229 230 public void addNewInstrumentToSystem (String newInstrument) throws UnableToAddInstrumentException; 231 232 public void addNewSystemToSystem (String newSystem) throws UnableToAddSystemException; 233 234 public void addNewRole (String emailAddress,Integer Role) throws UnableToAddNewRoleException; 235 236 public void addNewUser(final String Name, final String Surname, final String EmailAddress) throws UnableToAddNewUserException; 237 238 public void resetPassword(final String emailAddress, final String confirmedPassword) throws UnableToChangePasswordException; 239 240 public void linkFault(final int parentFaultId, final int childFaultId) throws UnknownFaultSpecifiedException,Exception; 241 242 /** 243 * Will be used to execute a basic search across the database 244 * using the input data which has been provided 245 * @param DefectNumber This is the defect number for which we 246 * should return the fault information. 247 * @param SearchTerms A list of search terms which will be used to 248 * index the fault information. 249 * @param StartDate This is the start date from when to look 250 * from. This could be left blank. 251 * @param EndDate This is the end date from when to stop looking 252 * for faults. 253 * @param locale This is the locale which the user has selected 254 * @gwt.typeArgs <GWTApplication.client.Fault> 255 */ 256 257 public ArrayList performBasicSearch (final int DefectNumber, 258 final String SearchTerms, 259 final String DefectToSearchFor, 260 final String StartDate, 261 final String EndDate, 262 final String locale) throws UnableToPerformSearchException; 263 264 public void registerForFaultUpdates (final String emailAddress,final int faultId); 265 266 public boolean printFault (int faultId,String printer,boolean landscape) throws UnknownPrinterSpecifiedException; 267 268 /** 269 * Perform an advanced search across the database using the 270 * search parameters which have been specified in the input array 271 * @return ArrayList<Fault> A list of the parameters which match 272 * the search criteria. 273 * @gwt.typeArgs <GWTApplication.client.Fault> 274 * @gwt.typeArgs SearchParameters <java.lang.String> 275 */ 276 277 public ArrayList performAdvancedSearch (final HashMap SearchParameters, 278 final String StartDate, 279 final String EndDate, 280 final String locale) throws UnableToPerformSearchException; 281 282 /** 283 * Return a list of all of the printers which are currently 284 * accesible by this machine 285 * @return ArrayList<String> A list of the printers which can print 286 * postscript from this machine 287 * @gwt.typeArgs <java.lang.String> 288 */ 289 290 public ArrayList getPostscriptPrinters (); 291 292 public void closeFault (int faultId) throws UnableToCloseFaultException; 293 294 /** 295 * Gets a list of all of the faults which have been updated since 296 * the last time that the client checked to see if the faults 297 * which it is displaying has been updated. The epoch to check 298 * from is conveyed in the timeOfLastUpdateCheck parameter. 299 * @return ArrayList<Fault> A list of the faults which have been 300 * updated. 301 * @gwt.typeArgs <GWTApplication.client.FaultUpdateSnapshot> 302 */ 303 304 public FaultUpdateSnapshot getFaultsUpdated (final Date timeOfLastUpdateCheck, final String locale); 305 306 public Boolean faultExists(final int faultId, final boolean isEditable); 307 308 309 /** 310 * Deliver the full details of a fault back to the caller 311 */ 312 313 public FaultEntryDetails getFullFaultHistory (final int defectNumber,final String locale); 314 315 /** 316 * This is used to get a list of the faults which the user specified is subscribed to 317 * @param authenticationDetails The details of the person that has logged into the system. 318 * @return ArrayList<Fault> This is a list of faults which the user is subscribed to 319 * @gwt.typeArgs <GWTApplication.client.Fault> 320 */ 321 322 public ArrayList getSubscribedFaults(final AuthenticationDetails authenticationDetails,final String locale); 323 324 public void updateFaultSubscriptionList (final AuthenticationDetails authenticationDetails, final HashMap newSubscriptionStatuses); 325 326 public void informEmailListenersFaultHasChanged(String ContextMessage, final int FaultNumber); 327 328 }