Package org.dspace.scripts.service
Interface ProcessService
- All Known Implementing Classes:
ProcessServiceImpl
public interface ProcessService
An interface for the ProcessService with methods regarding the Process workload
-
Method Summary
Modifier and TypeMethodDescriptionvoidappendFile(Context context, Process process, InputStream is, String type, String fileName) The method will create a bitstream from the given inputstream with the given type as metadata and given name as name and attach it to the given processvoidappendLog(int processId, String scriptName, String output, ProcessLogLevel processLogLevel) This method will append the given output to theProcessits logsvoidThis method will perform the logic needed to update the Process object in the database to represent a complete stateintcountByUser(Context context, EPerson user) Count all the processes which is related to the given user.intcountSearch(Context context, ProcessQueryParameterContainer processQueryParameterContainer) Count all the processes which match the requirements.intcountTotal(Context context) Returns the total amount of Process objects in the dataasecreate(Context context, EPerson ePerson, String scriptName, List<DSpaceCommandLineParameter> parameters, Set<Group> specialGroups) This method will create a Process object in the databasevoidcreateLogBitstream(Context context, Process process) voidThis method will delete the given Process object from the databasevoidThis method will perform the logic needed to update the Process object in the database to represent a failed statevoidfailRunningProcesses(Context context) Cleans up running processes by failing them an attaching their logs to the process objects.This method will retrieve a Process object from the Database with the given IDReturns a list of all Process objects in the databaseReturns a list of all Process objects in the databasefindAllSortByScript(Context context) Returns a list of all Process objects in the database sorted by script namefindAllSortByStartTime(Context context) Returns a list of all Process objects in the database sorted by start time The most recent one will be shown firstfindByStatusAndCreationTimeOlderThan(Context context, List<ProcessStatus> statuses, Instant date) Find all the processes with one of the given status and with a creation time older than the specified date.findByUser(Context context, EPerson user, int limit, int offset) Returns a list of all Process objects in the database by the given user.getBitstream(Context context, Process process, String type) This method will return the Bitstream for a given process with a given typegetBitstreamByName(Context context, Process process, String bitstreamName) This method will return the Bitstream that matches the given name for the given ProcessgetBitstreams(Context context, Process process) This method will return all the Bitstreams for a given processgetFileTypesForProcessBitstreams(Context context, Process process) This will return a list of Strings where each String represents the type of a Bitstream in the Process givengetParameters(Process process) This method will retrieve the list of parameters from the Process in its String format and it will parse these parameters to a list ofDSpaceCommandLineParameterobjects for better usability throughout DSpacesearch(Context context, ProcessQueryParameterContainer processQueryParameterContainer, int limit, int offset) Returns a list of all Processes in the database which match the given field requirements.voidThis method will perform the logic needed to update the Process object in the database to represent a started state.voidThis method will be used to update the given Process object in the database
-
Method Details
-
create
Process create(Context context, EPerson ePerson, String scriptName, List<DSpaceCommandLineParameter> parameters, Set<Group> specialGroups) throws SQLException This method will create a Process object in the database- Parameters:
context- The relevant DSpace contextePerson- The ePerson for which this process will be created onscriptName- The script name to be used for the processparameters- The parameters to be used for the processspecialGroups- Allows to set special groups, associated with application context when process is created, other than the ones derived from the eperson membership.- Returns:
- The created process
- Throws:
SQLException- If something goes wrong
-
find
This method will retrieve a Process object from the Database with the given ID- Parameters:
context- The relevant DSpace contextprocessId- The process id on which we'll search for in the database- Returns:
- The process that holds the given process id
- Throws:
SQLException- If something goes wrong
-
findAll
Returns a list of all Process objects in the database- Parameters:
context- The relevant DSpace context- Returns:
- The list of all Process objects in the Database
- Throws:
SQLException- If something goes wrong
-
findAll
Returns a list of all Process objects in the database- Parameters:
context- The relevant DSpace contextlimit- The limit for the amount of Processes returnedoffset- The offset for the Processes to be returned- Returns:
- The list of all Process objects in the Database
- Throws:
SQLException- If something goes wrong
-
findAllSortByScript
Returns a list of all Process objects in the database sorted by script name- Parameters:
context- The relevant DSpace context- Returns:
- The list of all Process objects in the database sorted by script name
- Throws:
SQLException- If something goes wrong
-
findAllSortByStartTime
Returns a list of all Process objects in the database sorted by start time The most recent one will be shown first- Parameters:
context- The relevant DSpace context- Returns:
- The list of all Process objects sorted by start time
- Throws:
SQLException- If something goes wrong
-
start
This method will perform the logic needed to update the Process object in the database to represent a started state. A started state refers toProcessStatus.RUNNING- Parameters:
context- The relevant DSpace contextprocess- The Process object to be updated- Throws:
SQLException- If something goes wrong
-
fail
This method will perform the logic needed to update the Process object in the database to represent a failed state- Parameters:
context- The relevant DSpace contextprocess- The Process object to be updated- Throws:
SQLException- If something goes wrong
-
complete
This method will perform the logic needed to update the Process object in the database to represent a complete state- Parameters:
context- The relevant DSpace contextprocess- The Process object to be updated- Throws:
SQLException- If something goes wrong
-
appendFile
void appendFile(Context context, Process process, InputStream is, String type, String fileName) throws IOException, SQLException, AuthorizeException The method will create a bitstream from the given inputstream with the given type as metadata and given name as name and attach it to the given process- Parameters:
context- The relevant DSpace contextprocess- The process for which the bitstream will be madeis- The inputstream for the bitstreamtype- The type of the bitstreamfileName- The name of the bitstream- Throws:
IOException- If something goes wrongSQLException- If something goes wrongAuthorizeException- If something goes wrong
-
delete
This method will delete the given Process object from the database- Parameters:
context- The relevant DSpace contextprocess- The Process object to be deleted- Throws:
SQLException- If something goes wrongIOExceptionAuthorizeException
-
update
This method will be used to update the given Process object in the database- Parameters:
context- The relevant DSpace contextprocess- The Process object to be updated- Throws:
SQLException- If something goes wrong
-
getParameters
This method will retrieve the list of parameters from the Process in its String format and it will parse these parameters to a list ofDSpaceCommandLineParameterobjects for better usability throughout DSpace- Parameters:
process- The Process object for which we'll return the parameters- Returns:
- The list of parsed parameters from the Process object
-
getBitstreamByName
This method will return the Bitstream that matches the given name for the given Process- Parameters:
context- The relevant DSpace contextprocess- The process that should hold the requested BitstreambitstreamName- The name of the requested Bitstream- Returns:
- The Bitstream from the given Process that matches the given bitstream name
-
getBitstream
This method will return the Bitstream for a given process with a given type- Parameters:
context- The relevant DSpace contextprocess- The process that holds the Bitstreams to be searched intype- The type that the Bitstream must have- Returns:
- The Bitstream of the given type for the given Process
-
getBitstreams
This method will return all the Bitstreams for a given process- Parameters:
context- The relevant DSpace contextprocess- The process that holds the Bitstreams to be searched in- Returns:
- The list of Bitstreams
-
countTotal
Returns the total amount of Process objects in the dataase- Parameters:
context- The relevant DSpace context- Returns:
- An integer that describes the amount of Process objects in the database
- Throws:
SQLException- If something goes wrong
-
getFileTypesForProcessBitstreams
This will return a list of Strings where each String represents the type of a Bitstream in the Process given- Parameters:
context- The DSpace contextprocess- The Process object that we'll use to find the bitstreams- Returns:
- A list of Strings where each String represents a fileType that is in the Process
-
search
List<Process> search(Context context, ProcessQueryParameterContainer processQueryParameterContainer, int limit, int offset) throws SQLException Returns a list of all Processes in the database which match the given field requirements. If the requirements are not null, they will be combined with an AND operation.- Parameters:
context- The relevant DSpace contextprocessQueryParameterContainer- TheProcessQueryParameterContainercontaining all the values that the returnedProcessobjects must adhere tolimit- The limit for the amount of Processes returnedoffset- The offset for the Processes to be returned- Returns:
- The list of all Processes which match the metadata requirements
- Throws:
SQLException- If something goes wrong
-
countSearch
int countSearch(Context context, ProcessQueryParameterContainer processQueryParameterContainer) throws SQLException Count all the processes which match the requirements. The requirements are evaluated like the search method.- Parameters:
context- The relevant DSpace contextprocessQueryParameterContainer- TheProcessQueryParameterContainercontaining all the values that the returnedProcessobjects must adhere to- Returns:
- The number of results matching the query
- Throws:
SQLException- If something goes wrong
-
appendLog
void appendLog(int processId, String scriptName, String output, ProcessLogLevel processLogLevel) throws IOException This method will append the given output to theProcessits logs- Parameters:
processId- The ID of theProcessto append the log forscriptName- The name of the Script that Process runsoutput- The output to appendprocessLogLevel- The loglevel of the output- Throws:
IOException- If something goes wrong
-
createLogBitstream
void createLogBitstream(Context context, Process process) throws IOException, SQLException, AuthorizeException - Parameters:
context- The relevant DSpace contextprocess- TheProcessfor which we're making theBitstream- Throws:
IOException- If something goes wrongSQLException- If something goes wrongAuthorizeException- If something goes wrong
-
findByStatusAndCreationTimeOlderThan
List<Process> findByStatusAndCreationTimeOlderThan(Context context, List<ProcessStatus> statuses, Instant date) throws SQLException Find all the processes with one of the given status and with a creation time older than the specified date.- Parameters:
context- The relevant DSpace contextstatuses- the statuses of the processes to search fordate- the creation date to search for- Returns:
- The list of all Processes which match requirements
- Throws:
AuthorizeException- If something goes wrongSQLException
-
findByUser
Returns a list of all Process objects in the database by the given user.- Parameters:
context- The relevant DSpace contextuser- The user to search forlimit- The limit for the amount of Processes returnedoffset- The offset for the Processes to be returned- Returns:
- The list of all Process objects in the Database
- Throws:
SQLException- If something goes wrong
-
countByUser
Count all the processes which is related to the given user.- Parameters:
context- The relevant DSpace contextuser- The user to search for- Returns:
- The number of results matching the query
- Throws:
SQLException- If something goes wrong
-
failRunningProcesses
Cleans up running processes by failing them an attaching their logs to the process objects.- Parameters:
context- The DSpace context- Throws:
SQLExceptionIOExceptionAuthorizeException
-