Package fr.gouv.vitam.worker.common
Interface HandlerIO
-
- All Superinterfaces:
java.lang.AutoCloseable,VitamAutoCloseable
- All Known Implementing Classes:
HandlerIOImpl
public interface HandlerIO extends VitamAutoCloseable
Interface of HandlerIO for all Handlers
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaddInIOParameters(java.util.List<IOParameter> list)Add Input parametersvoidaddOutIOParameters(java.util.List<IOParameter> list)Add Output parametersHandlerIOaddOutputResult(int rank, java.lang.Object object)HandlerIOaddOutputResult(int rank, java.lang.Object object, boolean asyncIO)Add one output result (no delete)HandlerIOaddOutputResult(int rank, java.lang.Object object, boolean deleteLocal, boolean asyncIO)Add one output resultbooleancheckHandlerIO(int outputNumber, java.util.List<java.lang.Class<?>> clasz)Check if input and output have the very same number of elements and for Input the associated typesvoidconsumeAnyEntityAndClose(javax.ws.rs.core.Response response)Consume any entity and close responsevoidenableAsync(boolean asyncIo)If true then start async manager, if false then waitEndOfTransfer and stop asyncManagerjava.lang.StringgetContainerName()java.io.FilegetFile(int rank)java.io.FilegetFileFromWorkspace(java.lang.String objectName)Helper to load a file from Workspace (or local cache) and save it into local cache.
To be used when not specified within the Input parametersjava.util.Map<java.lang.String,java.lang.Long>getFilesWithParamsFromWorkspace(java.lang.String containerName, java.lang.String folderName)get Map of File With Params From folder in WorkspaceLogbookLifeCyclesClientHelpergetHelper()java.util.List<java.lang.Object>getInput()java.lang.ObjectgetInput(int rank)Return one Object from input<T> TgetInput(int rank, java.lang.Class<T> type)Return one Object casted to type from inputjava.io.InputStreamgetInputStreamFromWorkspace(java.lang.String objectName)Helper to get an InputStream (using local cache if possible) from Workspace
To be used when not specified within the Input parameterscom.fasterxml.jackson.databind.JsonNodegetJsonFromWorkspace(java.lang.String jsonFilePath)Retrieve a json file as aJsonNodefrom the workspace.LogbookLifeCyclesClientgetLifecyclesClient()java.io.FilegetNewLocalFile(java.lang.String name)java.util.List<ProcessingUri>getOutput()ProcessingUrigetOutput(int rank)Return one ProcessingUri from outputjava.util.List<java.net.URI>getUriList(java.lang.String containerName, java.lang.String folderName)java.lang.StringgetWorkerId()WorkspaceClientFactorygetWorkspaceClientFactory()booleanisExistingFileInWorkspace(java.lang.String workspacePath)booleanremoveFolder(java.lang.String folderName)Remove a specific foldervoidreset()Reset after each ActionvoidsetCurrentObjectId(java.lang.String currentObjectId)voidtransferAtomicFileToWorkspace(java.lang.String workspacePath, java.io.File sourceFile)voidtransferFileToWorkspace(java.lang.String workspacePath, java.io.File sourceFile, boolean toDelete, boolean asyncIO)Helper to write a file to Workspace
To be used when not specified within the Output ParametersvoidtransferInputStreamToWorkspace(java.lang.String workspacePath, java.io.InputStream inputStream, java.nio.file.Path filePath, boolean asyncIO)Helper to write an InputStream to Workspace
To be used when not specified within the Output ParametersvoidtransferJsonToWorkspace(java.lang.String collectionName, java.lang.String workspacePath, com.fasterxml.jackson.databind.JsonNode jsonNode, boolean toDelete, boolean asyncIO)Helper to convert and write a file to Workspace
voidunzipInputStreamOnWorkspace(java.lang.String container, java.lang.String folderName, java.lang.String archiveMimeType, java.io.InputStream uploadedInputStream, boolean asyncIO)-
Methods inherited from interface fr.gouv.vitam.common.model.VitamAutoCloseable
close
-
-
-
-
Method Detail
-
addInIOParameters
void addInIOParameters(java.util.List<IOParameter> list)
Add Input parameters- Parameters:
list-- Throws:
java.lang.IllegalArgumentException- if an error occurs
-
addOutIOParameters
void addOutIOParameters(java.util.List<IOParameter> list)
Add Output parameters- Parameters:
list-- Throws:
java.lang.IllegalArgumentException- if an error occurs
-
reset
void reset()
Reset after each Action
-
getInput
java.util.List<java.lang.Object> getInput()
- Returns:
- list of input
-
getInput
java.lang.Object getInput(int rank)
Return one Object from input- Parameters:
rank-- Returns:
- the rank-th object
-
getInput
<T> T getInput(int rank, java.lang.Class<T> type)Return one Object casted to type from input- Parameters:
rank-- Returns:
- the rank-th object
-
getFile
java.io.File getFile(int rank)
-
getOutput
java.util.List<ProcessingUri> getOutput()
- Returns:
- list of output
-
getOutput
ProcessingUri getOutput(int rank)
Return one ProcessingUri from output- Parameters:
rank-- Returns:
- the rank-th ProcessingUri
-
addOutputResult
HandlerIO addOutputResult(int rank, java.lang.Object object) throws ProcessingException
- Throws:
ProcessingException
-
addOutputResult
HandlerIO addOutputResult(int rank, java.lang.Object object, boolean asyncIO) throws ProcessingException
Add one output result (no delete)- Parameters:
rank- the position in the outputobject- the result to store (WORKSPACE to workspace and must be a File, MEMORY to memory whatever it is)asyncIO- asynchronously send to the workspace- Returns:
- this
- Throws:
ProcessingExceptionjava.lang.IllegalArgumentException
-
addOutputResult
HandlerIO addOutputResult(int rank, java.lang.Object object, boolean deleteLocal, boolean asyncIO) throws ProcessingException
Add one output result- Parameters:
rank- the position in the outputobject- the result to store (WORKSPACE to workspace and must be a File, MEMORY to memory whatever it is)deleteLocal- if true, will delete the local file in case of WORKSPACE onlyasyncIO- asynchronously send to the workspace- Returns:
- this
- Throws:
ProcessingExceptionjava.lang.IllegalArgumentException
-
getContainerName
java.lang.String getContainerName()
- Returns:
- the container Name
-
getWorkerId
java.lang.String getWorkerId()
- Returns:
- the worker Id
-
getNewLocalFile
java.io.File getNewLocalFile(java.lang.String name)
- Parameters:
name-- Returns:
- a File pointing to a local path in Tmp directory under protected Worker instance space
-
getUriList
java.util.List<java.net.URI> getUriList(java.lang.String containerName, java.lang.String folderName) throws ProcessingException- Parameters:
containerName-folderName-- Returns:
- List
a list of uri of object in SIP folder - Throws:
ProcessingException
-
checkHandlerIO
boolean checkHandlerIO(int outputNumber, java.util.List<java.lang.Class<?>> clasz)Check if input and output have the very same number of elements and for Input the associated types- Parameters:
outputNumber- the number of outputArgumentsclasz- the list of Class that should be in the InputParameters- Returns:
- true if everything ok
-
isExistingFileInWorkspace
boolean isExistingFileInWorkspace(java.lang.String workspacePath) throws ProcessingException- Throws:
ProcessingException
-
transferFileToWorkspace
void transferFileToWorkspace(java.lang.String workspacePath, java.io.File sourceFile, boolean toDelete, boolean asyncIO) throws ProcessingExceptionHelper to write a file to Workspace
To be used when not specified within the Output Parameters- Parameters:
workspacePath- path within the workspath, without the container (implicit)sourceFile- the source file to writetoDelete- if True, will delete the local fileasyncIO- asynchronously send to the workspace- Throws:
ProcessingException
-
transferAtomicFileToWorkspace
void transferAtomicFileToWorkspace(java.lang.String workspacePath, java.io.File sourceFile) throws ProcessingException- Throws:
ProcessingException
-
transferInputStreamToWorkspace
void transferInputStreamToWorkspace(java.lang.String workspacePath, java.io.InputStream inputStream, java.nio.file.Path filePath, boolean asyncIO) throws ProcessingExceptionHelper to write an InputStream to Workspace
To be used when not specified within the Output Parameters- Parameters:
workspacePath- path within the workspath, without the container (implicit)inputStream- the source InputStream to writeasyncIO- asynchronously send to the workspace- Throws:
ProcessingException
-
getFileFromWorkspace
java.io.File getFileFromWorkspace(java.lang.String objectName) throws java.io.IOException, ContentAddressableStorageNotFoundException, ContentAddressableStorageServerExceptionHelper to load a file from Workspace (or local cache) and save it into local cache.
To be used when not specified within the Input parameters- Parameters:
objectName-- Returns:
- file if found
- Throws:
java.io.IOExceptionContentAddressableStorageNotFoundExceptionContentAddressableStorageServerException
-
getFilesWithParamsFromWorkspace
java.util.Map<java.lang.String,java.lang.Long> getFilesWithParamsFromWorkspace(java.lang.String containerName, java.lang.String folderName) throws ProcessingExceptionget Map of File With Params From folder in Workspace- Parameters:
containerName-folderName-- Returns:
- Throws:
ProcessingException
-
getInputStreamFromWorkspace
java.io.InputStream getInputStreamFromWorkspace(java.lang.String objectName) throws java.io.IOException, ContentAddressableStorageNotFoundException, ContentAddressableStorageServerExceptionHelper to get an InputStream (using local cache if possible) from Workspace
To be used when not specified within the Input parameters- Parameters:
objectName-- Returns:
- the InputStream
- Throws:
java.io.IOExceptionContentAddressableStorageNotFoundExceptionContentAddressableStorageServerException
-
consumeAnyEntityAndClose
void consumeAnyEntityAndClose(javax.ws.rs.core.Response response)
Consume any entity and close response- Parameters:
response-
-
getJsonFromWorkspace
com.fasterxml.jackson.databind.JsonNode getJsonFromWorkspace(java.lang.String jsonFilePath) throws ProcessingExceptionRetrieve a json file as aJsonNodefrom the workspace.- Parameters:
jsonFilePath- path in workspace of the json File- Returns:
- JsonNode of the json file
- Throws:
ProcessingException- throws when error occurs
-
getLifecyclesClient
LogbookLifeCyclesClient getLifecyclesClient()
- Returns:
- the HandlerIO LifecycleClient
-
getHelper
LogbookLifeCyclesClientHelper getHelper()
- Returns:
- the helper for bulk lifecycle for LifecyclesClient
-
transferJsonToWorkspace
void transferJsonToWorkspace(java.lang.String collectionName, java.lang.String workspacePath, com.fasterxml.jackson.databind.JsonNode jsonNode, boolean toDelete, boolean asyncIO) throws ProcessingExceptionHelper to convert and write a file to Workspace
- Parameters:
collectionName- : collection typeworkspacePath- path within the workspacepath, without the container (implicit)jsonNode- the json file to writetoDelete- if True, will delete the local fileasyncIO- asynchronously send to the workspace- Throws:
ProcessingException
-
unzipInputStreamOnWorkspace
void unzipInputStreamOnWorkspace(java.lang.String container, java.lang.String folderName, java.lang.String archiveMimeType, java.io.InputStream uploadedInputStream, boolean asyncIO) throws ContentAddressableStorageException- Parameters:
container-folderName-archiveMimeType-uploadedInputStream-asyncIO- asynchronously send and unzip file to/in the workspace- Throws:
ContentAddressableStorageException
-
enableAsync
void enableAsync(boolean asyncIo) throws WorkerspaceQueueExceptionIf true then start async manager, if false then waitEndOfTransfer and stop asyncManager- Parameters:
asyncIo-- Throws:
WorkerspaceQueueException
-
removeFolder
boolean removeFolder(java.lang.String folderName) throws ContentAddressableStorageExceptionRemove a specific folder- Parameters:
folderName- the folderName to delete- Returns:
- true if the folder was removed, false if it does not exist
- Throws:
ContentAddressableStorageException- when storage error occurs
-
setCurrentObjectId
void setCurrentObjectId(java.lang.String currentObjectId)
-
getWorkspaceClientFactory
WorkspaceClientFactory getWorkspaceClientFactory()
-
-