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 java.lang.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  java.util.Map<java.io.File,java.lang.Long> dirTimestamps
           
protected  java.util.logging.Logger logger
           
static LocalStringManagerImpl strings
           
 
Method Summary
protected  java.net.URI getOutputFileURI(Payload.Part part, java.lang.String name)
           
protected  java.net.URI getParentURI(Payload.Part part)
           
protected  java.io.File getTargetDir()
           
protected abstract  void postExtract(java.io.File extractedFile)
           
protected abstract  void postProcessParts()
           
 java.util.List<java.io.File> processParts(Payload.Inbound inboundPayload)
          Returns all Files extracted from the Payload, treating each Part as a separate file.
 java.util.Map<java.io.File,java.util.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 java.util.logging.Logger logger

dirTimestamps

protected final java.util.Map<java.io.File,java.lang.Long> dirTimestamps
Method Detail

getTargetDir

protected java.io.File getTargetDir()

getParentURI

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

postExtract

protected abstract void postExtract(java.io.File extractedFile)

getOutputFileURI

protected java.net.URI getOutputFileURI(Payload.Part part,
                                        java.lang.String name)
                                 throws java.io.IOException
Throws:
java.io.IOException

processPartsExtended

public java.util.Map<java.io.File,java.util.Properties> processPartsExtended(Payload.Inbound inboundPayload)
                                                                      throws java.lang.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:
java.io.IOException
java.lang.Exception

processParts

public java.util.List<java.io.File> processParts(Payload.Inbound inboundPayload)
                                          throws java.lang.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:
java.io.IOException
java.lang.Exception

postProcessParts

protected abstract void postProcessParts()


Copyright © 2012 GlassFish Community. All Rights Reserved.