org.glassfish.admin.payload
Class PayloadFilesManager

java.lang.Object
  extended by 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 response Payload.

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 a PayLoadFilesManager.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
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
protected  Map<File,Long> dirTimestamps
           
protected  Logger logger
           
static LocalStringManagerImpl strings
           
 
Method Summary
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.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

strings

public static final LocalStringManagerImpl strings

logger

protected final Logger logger

dirTimestamps

protected final Map<File,Long> dirTimestamps
Method Detail

getTargetDir

protected File getTargetDir()

getParentURI

protected URI getParentURI(Payload.Part part)
                    throws UnsupportedEncodingException
Throws:
UnsupportedEncodingException

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()


Copyright © 2012 GlassFish Community. All Rights Reserved.