Package fr.gouv.vitam.worker.core.impl
Class HandlerIOImpl
- java.lang.Object
-
- fr.gouv.vitam.worker.core.impl.HandlerIOImpl
-
- All Implemented Interfaces:
VitamAutoCloseable,HandlerIO,java.lang.AutoCloseable
public class HandlerIOImpl extends java.lang.Object implements HandlerIO, VitamAutoCloseable
Handler input and output parameter
-
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringNOT_CONFORM_PARAMNot Conform Param
-
Constructor Summary
Constructors Constructor Description HandlerIOImpl(WorkspaceClientFactory workspaceClientFactory, LogbookLifeCyclesClientFactory logbookLifeCyclesClientFactory, java.lang.String containerName, java.lang.String workerId, java.util.List<java.lang.String> objectIds)Constructor with workspaceClient, local root path he is used for test purposeHandlerIOImpl(java.lang.String containerName, java.lang.String workerId, java.util.List<java.lang.String> objectIds)Constructor with local root path
-
Method Summary
All Methods Instance Methods Concrete 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 typesvoidclose()voidconsumeAnyEntityAndClose(javax.ws.rs.core.Response response)Consume any entity and close responsevoidenableAsync(boolean async)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)voidpartialClose()Close the HandlerIO, including temporary files and directories at the end of the step Workflow execution, but do not close the WorkspaceClientbooleanremoveFolder(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 objectName, 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)
-
-
-
Field Detail
-
NOT_CONFORM_PARAM
public static final java.lang.String NOT_CONFORM_PARAM
Not Conform Param- See Also:
- Constant Field Values
-
-
Constructor Detail
-
HandlerIOImpl
public HandlerIOImpl(java.lang.String containerName, java.lang.String workerId, java.util.List<java.lang.String> objectIds)Constructor with local root path- Parameters:
containerName- the container nameworkerId- the worker idobjectIds-
-
HandlerIOImpl
public HandlerIOImpl(WorkspaceClientFactory workspaceClientFactory, LogbookLifeCyclesClientFactory logbookLifeCyclesClientFactory, java.lang.String containerName, java.lang.String workerId, java.util.List<java.lang.String> objectIds)
Constructor with workspaceClient, local root path he is used for test purpose- Parameters:
workspaceClientFactory-logbookLifeCyclesClientFactory-containerName- the container nameworkerId- the worker idobjectIds-
-
-
Method Detail
-
getLifecyclesClient
public LogbookLifeCyclesClient getLifecyclesClient()
- Specified by:
getLifecyclesClientin interfaceHandlerIO- Returns:
- the HandlerIO LifecycleClient
-
getHelper
public LogbookLifeCyclesClientHelper getHelper()
-
addInIOParameters
public void addInIOParameters(java.util.List<IOParameter> list)
Description copied from interface:HandlerIOAdd Input parameters- Specified by:
addInIOParametersin interfaceHandlerIO
-
addOutIOParameters
public void addOutIOParameters(java.util.List<IOParameter> list)
Description copied from interface:HandlerIOAdd Output parameters- Specified by:
addOutIOParametersin interfaceHandlerIO
-
reset
public void reset()
Description copied from interface:HandlerIOReset after each Action
-
close
public void close()
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfaceVitamAutoCloseable
-
partialClose
public void partialClose()
Close the HandlerIO, including temporary files and directories at the end of the step Workflow execution, but do not close the WorkspaceClient
-
getInput
public java.util.List<java.lang.Object> getInput()
-
getInput
public java.lang.Object getInput(int rank)
Description copied from interface:HandlerIOReturn one Object from input
-
getInput
public <T> T getInput(int rank, java.lang.Class<T> type)Description copied from interface:HandlerIOReturn one Object casted to type from input
-
getOutput
public java.util.List<ProcessingUri> getOutput()
-
getOutput
public ProcessingUri getOutput(int rank)
Description copied from interface:HandlerIOReturn one ProcessingUri from output
-
addOutputResult
public HandlerIO addOutputResult(int rank, java.lang.Object object) throws ProcessingException
- Specified by:
addOutputResultin interfaceHandlerIO- Throws:
ProcessingException
-
addOutputResult
public HandlerIO addOutputResult(int rank, java.lang.Object object, boolean asyncIO) throws ProcessingException
Description copied from interface:HandlerIOAdd one output result (no delete)- Specified by:
addOutputResultin interfaceHandlerIO- 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:
ProcessingException
-
addOutputResult
public HandlerIO addOutputResult(int rank, java.lang.Object object, boolean deleteLocal, boolean asyncIO) throws ProcessingException
Description copied from interface:HandlerIOAdd one output result- Specified by:
addOutputResultin interfaceHandlerIO- 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:
ProcessingException
-
getContainerName
public java.lang.String getContainerName()
- Specified by:
getContainerNamein interfaceHandlerIO- Returns:
- the container Name
-
getWorkerId
public java.lang.String getWorkerId()
- Specified by:
getWorkerIdin interfaceHandlerIO- Returns:
- the worker Id
-
getNewLocalFile
public java.io.File getNewLocalFile(java.lang.String name)
- Specified by:
getNewLocalFilein interfaceHandlerIO- Returns:
- a File pointing to a local path in Tmp directory under protected Worker instance space
-
checkHandlerIO
public boolean checkHandlerIO(int outputNumber, java.util.List<java.lang.Class<?>> clasz)Description copied from interface:HandlerIOCheck if input and output have the very same number of elements and for Input the associated types- Specified by:
checkHandlerIOin interfaceHandlerIO- Parameters:
outputNumber- the number of outputArgumentsclasz- the list of Class that should be in the InputParameters- Returns:
- true if everything ok
-
isExistingFileInWorkspace
public boolean isExistingFileInWorkspace(java.lang.String workspacePath) throws ProcessingException- Specified by:
isExistingFileInWorkspacein interfaceHandlerIO- Throws:
ProcessingException
-
transferFileToWorkspace
public void transferFileToWorkspace(java.lang.String workspacePath, java.io.File sourceFile, boolean toDelete, boolean asyncIO) throws ProcessingExceptionDescription copied from interface:HandlerIOHelper to write a file to Workspace
To be used when not specified within the Output Parameters- Specified by:
transferFileToWorkspacein interfaceHandlerIO- 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
public void transferAtomicFileToWorkspace(java.lang.String workspacePath, java.io.File sourceFile) throws ProcessingException- Specified by:
transferAtomicFileToWorkspacein interfaceHandlerIO- Throws:
ProcessingException
-
transferInputStreamToWorkspace
public void transferInputStreamToWorkspace(java.lang.String workspacePath, java.io.InputStream inputStream, java.nio.file.Path filePath, boolean asyncIO) throws ProcessingExceptionDescription copied from interface:HandlerIOHelper to write an InputStream to Workspace
To be used when not specified within the Output Parameters- Specified by:
transferInputStreamToWorkspacein interfaceHandlerIO- Parameters:
workspacePath- path within the workspath, without the container (implicit)inputStream- the source InputStream to writeasyncIO- asynchronously send to the workspace- Throws:
ProcessingException
-
getFileFromWorkspace
public java.io.File getFileFromWorkspace(java.lang.String objectName) throws java.io.IOException, ContentAddressableStorageNotFoundException, ContentAddressableStorageServerExceptionDescription copied from interface:HandlerIOHelper 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- Specified by:
getFileFromWorkspacein interfaceHandlerIO- Returns:
- file if found
- Throws:
java.io.IOExceptionContentAddressableStorageNotFoundExceptionContentAddressableStorageServerException
-
getInputStreamFromWorkspace
public java.io.InputStream getInputStreamFromWorkspace(java.lang.String objectName) throws java.io.IOException, ContentAddressableStorageNotFoundException, ContentAddressableStorageServerExceptionDescription copied from interface:HandlerIOHelper to get an InputStream (using local cache if possible) from Workspace
To be used when not specified within the Input parameters- Specified by:
getInputStreamFromWorkspacein interfaceHandlerIO- Returns:
- the InputStream
- Throws:
java.io.IOExceptionContentAddressableStorageNotFoundExceptionContentAddressableStorageServerException
-
consumeAnyEntityAndClose
public void consumeAnyEntityAndClose(javax.ws.rs.core.Response response)
Description copied from interface:HandlerIOConsume any entity and close response- Specified by:
consumeAnyEntityAndClosein interfaceHandlerIO
-
getJsonFromWorkspace
public com.fasterxml.jackson.databind.JsonNode getJsonFromWorkspace(java.lang.String jsonFilePath) throws ProcessingExceptionDescription copied from interface:HandlerIORetrieve a json file as aJsonNodefrom the workspace.- Specified by:
getJsonFromWorkspacein interfaceHandlerIO- Parameters:
jsonFilePath- path in workspace of the json File- Returns:
- JsonNode of the json file
- Throws:
ProcessingException- throws when error occurs
-
getUriList
public java.util.List<java.net.URI> getUriList(java.lang.String containerName, java.lang.String folderName) throws ProcessingException- Specified by:
getUriListin interfaceHandlerIO- Returns:
- List
a list of uri of object in SIP folder - Throws:
ProcessingException
-
transferJsonToWorkspace
public void transferJsonToWorkspace(java.lang.String collectionName, java.lang.String objectName, com.fasterxml.jackson.databind.JsonNode jsonNode, boolean toDelete, boolean asyncIO) throws ProcessingExceptionDescription copied from interface:HandlerIOHelper to convert and write a file to Workspace
- Specified by:
transferJsonToWorkspacein interfaceHandlerIO- Parameters:
collectionName- : collection typeobjectName- 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
public void unzipInputStreamOnWorkspace(java.lang.String container, java.lang.String folderName, java.lang.String archiveMimeType, java.io.InputStream uploadedInputStream, boolean asyncIO) throws ContentAddressableStorageException- Specified by:
unzipInputStreamOnWorkspacein interfaceHandlerIOasyncIO- asynchronously send and unzip file to/in the workspace- Throws:
ContentAddressableStorageException
-
enableAsync
public void enableAsync(boolean async) throws WorkerspaceQueueExceptionDescription copied from interface:HandlerIOIf true then start async manager, if false then waitEndOfTransfer and stop asyncManager- Specified by:
enableAsyncin interfaceHandlerIO- Throws:
WorkerspaceQueueException
-
removeFolder
public boolean removeFolder(java.lang.String folderName) throws ContentAddressableStorageExceptionDescription copied from interface:HandlerIORemove a specific folder- Specified by:
removeFolderin interfaceHandlerIO- 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
public void setCurrentObjectId(java.lang.String currentObjectId)
- Specified by:
setCurrentObjectIdin interfaceHandlerIO
-
getWorkspaceClientFactory
public WorkspaceClientFactory getWorkspaceClientFactory()
- Specified by:
getWorkspaceClientFactoryin interfaceHandlerIO
-
getFilesWithParamsFromWorkspace
public java.util.Map<java.lang.String,java.lang.Long> getFilesWithParamsFromWorkspace(java.lang.String containerName, java.lang.String folderName) throws ProcessingExceptionDescription copied from interface:HandlerIOget Map of File With Params From folder in Workspace- Specified by:
getFilesWithParamsFromWorkspacein interfaceHandlerIO- Returns:
- Throws:
ProcessingException
-
-