Class PayloadFilesManager
- java.lang.Object
-
- org.glassfish.admin.payload.PayloadFilesManager
-
- Direct Known Subclasses:
PayloadFilesManager.Perm
,PayloadFilesManager.Temp
public abstract class PayloadFilesManager extends Object
Manages transferred files delivered via the request or responsePayload
.Callers can process the entire payload at once, treating each Part as a file, using the
processParts(org.glassfish.api.admin.Payload.Inbound)
method. Or, the caller can invoke the#processPart
method to work with a single Part as a file.If the caller wants to extract the payload's content as temporary files it should instantiate
PayloadFilesManager.Temp
which exposes aPayLoadFilesManager.Temp#cleanup
method. The caller should invoke this method once it has finished with the transferred files, although the finalizer will invoke cleanup just in case.On the other hand, if the caller wants to keep the transferred files it should instantiate
PayloadFilesManager.Perm
.Temp
uses a unique temporary directory, then creates one temp file for each part it is asked to deal with, either from an entire payload (processParts(org.glassfish.api.admin.Payload.Inbound)
) or a single part (#processPart(org.glassfish.api.admin.Payload.Part)
). Recall that each part in the payload has a name which is a relative or absolute URI.- Author:
- tjquinn
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interface
PayloadFilesManager.ActionReportHandler
static class
PayloadFilesManager.Perm
Extracts files from a Payload and leaves them on disk.static class
PayloadFilesManager.Temp
Extracts files from a payload, treating them as temporary files.
-
Field Summary
Fields Modifier and Type Field Description protected Map<File,Long>
dirTimestamps
protected Logger
logger
static LocalStringManagerImpl
strings
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected URI
getOutputFileURI(Payload.Part part, String name)
protected URI
getParentURI(Payload.Part part)
protected File
getTargetDir()
protected abstract void
postExtract(File extractedFile)
protected abstract void
postProcessParts()
List<File>
processParts(Payload.Inbound inboundPayload)
Returns all Files extracted from the Payload, treating each Part as a separate file.Map<File,Properties>
processPartsExtended(Payload.Inbound inboundPayload)
Returns all Files extracted from the Payload, treating each Part as a separate file, via a Map from each File to its associated Properties.
-
-
-
Field Detail
-
strings
public static final LocalStringManagerImpl strings
-
logger
protected final Logger logger
-
-
Method Detail
-
getTargetDir
protected File getTargetDir()
-
getParentURI
protected URI getParentURI(Payload.Part part)
-
postExtract
protected abstract void postExtract(File extractedFile)
-
getOutputFileURI
protected URI getOutputFileURI(Payload.Part part, String name) throws IOException
- Throws:
IOException
-
processPartsExtended
public Map<File,Properties> processPartsExtended(Payload.Inbound inboundPayload) throws Exception
Returns all Files extracted from the Payload, treating each Part as a separate file, via a Map from each File to its associated Properties.- Parameters:
inboundPayload
- Payload containing file data to be extracted- Returns:
- map from each extracted File to its corresponding Properties
- Throws:
IOException
Exception
-
processParts
public List<File> processParts(Payload.Inbound inboundPayload) throws Exception
Returns all Files extracted from the Payload, treating each Part as a separate file.- Parameters:
inboundPayload
- Payload containing file data to be extracted- Returns:
- the Files corresponding to the content of each extracted file
- Throws:
IOException
Exception
-
postProcessParts
protected abstract void postProcessParts()
-
-