adams.flow.transformer
Class AbstractMultiDecompress

java.lang.Object
  extended by adams.core.ConsoleObject
      extended by adams.core.option.AbstractOptionHandler
          extended by adams.flow.core.AbstractActor
              extended by adams.flow.transformer.AbstractTransformer
                  extended by adams.flow.transformer.AbstractMultiDecompress
All Implemented Interfaces:
AdditionalInformationHandler, CleanUpHandler, Debuggable, DebugOutputHandler, Destroyable, OptionHandler, QuickInfoSupporter, ShallowCopySupporter<AbstractActor>, SizeOfHandler, Stoppable, VariableChangeListener, Actor, ErrorHandler, InputConsumer, OutputProducer, Serializable, Comparable
Direct Known Subclasses:
UnTar, UnZIP

public abstract class AbstractMultiDecompress
extends AbstractTransformer

Ancestor for compression schemes that manage archives with multiple files (incl directory structure) like zip archives.

Version:
$Revision: 6830 $
Author:
fracpete (fracpete at waikato dot ac dot nz)
See Also:
Serialized Form

Field Summary
protected  int m_BufferSize
          the buffer size to use.
protected  boolean m_CreateDirectories
          whether to restore the directory structure.
protected  boolean m_InvertMatching
          invert matching sense.
protected  PlaceholderDirectory m_OutputDir
          the output directory.
protected  BaseRegExp m_RegExp
          the regular expression that the filenames must match to be extracted.
 
Fields inherited from class adams.flow.transformer.AbstractTransformer
BACKUP_INPUT, BACKUP_OUTPUT, m_InputToken, m_OutputToken
 
Fields inherited from class adams.flow.core.AbstractActor
m_Annotations, m_BackupState, m_DetectedObjectVariables, m_DetectedVariables, m_ErrorHandler, m_Executed, m_Executing, m_ExecutionListeningSupporter, m_FullName, m_Headless, m_Name, m_Parent, m_Root, m_ScopeHandler, m_Self, m_Skip, m_StopFlowOnError, m_StopMessage, m_Stopped, m_StorageHandler, m_VariablesUpdated
 
Fields inherited from class adams.core.option.AbstractOptionHandler
m_DebugLevel, m_OptionManager
 
Fields inherited from interface adams.flow.core.Actor
FILE_EXTENSION, FILE_EXTENSION_GZ
 
Constructor Summary
AbstractMultiDecompress()
           
 
Method Summary
 Class[] accepts()
          Returns the class that the consumer accepts.
 String bufferSizeTipText()
          Returns the tip text for this property.
 String createDirectoriesTipText()
          Returns the tip text for this property.
protected abstract  List<File> decompress(File inFile, StringBuilder result)
          Decompresses the archive.
 void defineOptions()
          Adds options to the internal list of options.
protected  String doExecute()
          Performs the actual transformation.
 Class[] generates()
          Returns the class of objects that it generates.
 int getBufferSize()
          Returns the buffer size for the stream.
 boolean getCreateDirectories()
          Returns whether to restore the directory structure from the archive.
 boolean getInvertMatching()
          Returns whether to invert the matching sense of the regular expression.
 PlaceholderDirectory getOutputDir()
          Returns the alternative output directory to use.
 String getQuickInfo()
          Returns a quick info about the actor, which will be displayed in the GUI.
 BaseRegExp getRegExp()
          Returns the regular expression that the filenames must match.
 String invertMatchingTipText()
          Returns the tip text for this property.
 String outputDirTipText()
          Returns the tip text for this property.
 String regExpTipText()
          Returns the tip text for this property.
 void setBufferSize(int value)
          Sets the buffer size for the stream.
 void setCreateDirectories(boolean value)
          Sets whether to restore the directory structure from the archive.
 void setInvertMatching(boolean value)
          Sets whether to invert the matching sense of the regular expression.
 void setOutputDir(PlaceholderDirectory value)
          Sets output directory to use.
 void setRegExp(BaseRegExp value)
          Sets the regular expression that the filenames must match.
 
Methods inherited from class adams.flow.transformer.AbstractTransformer
backupState, execute, hasPendingOutput, input, output, postExecute, reset, restoreState, wrapUp
 
Methods inherited from class adams.flow.core.AbstractActor
annotationsTipText, canInspectOptions, canPerformSetUpCheck, cleanUp, compareTo, debug, destroy, equals, findVariables, findVariables, findVariables, forceVariables, forCommandLine, forName, getAdditionalInformation, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowActors, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, handleException, hasErrorHandler, hasStopMessage, index, initialize, isBackedUp, isExecuted, isExecuting, isFinished, isHeadless, isStopped, nameTipText, performSetUpChecks, preExecute, pruneBackup, pruneBackup, setAnnotations, setErrorHandler, setHeadless, setName, setParent, setSkip, setStopFlowOnError, setUp, setVariables, shallowCopy, shallowCopy, sizeOf, skipTipText, stopExecution, stopExecution, stopFlowOnErrorTipText, updateDetectedVariables, updatePrefix, updateVariables, variableChanged
 
Methods inherited from class adams.core.option.AbstractOptionHandler
cleanUpOptions, debug, debugLevelTipText, finishInit, getDebugLevel, getOptionManager, globalInfo, isDebugOn, newOptionManager, setDebugLevel, toCommandLine, toString
 
Methods inherited from class adams.core.ConsoleObject
getDebugging, getSystemErr, getSystemOut
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface adams.flow.core.Actor
cleanUp, compareTo, debug, destroy, equals, findVariables, getAnnotations, getDefaultName, getDetectedVariables, getErrorHandler, getFlowExecutionListeningSupporter, getFullName, getName, getNextSibling, getParent, getParentComponent, getPreviousSibling, getRoot, getScopeHandler, getSkip, getStopFlowOnError, getStopMessage, getStorageHandler, getVariables, handleError, hasErrorHandler, hasStopMessage, index, isExecuted, isFinished, isHeadless, isStopped, setAnnotations, setErrorHandler, setHeadless, setName, setParent, setSkip, setStopFlowOnError, setUp, setVariables, sizeOf, stopExecution, stopExecution, variableChanged
 
Methods inherited from interface adams.core.AdditionalInformationHandler
getAdditionalInformation
 
Methods inherited from interface adams.core.option.OptionHandler
cleanUpOptions, getOptionManager
 

Field Detail

m_OutputDir

protected PlaceholderDirectory m_OutputDir
the output directory.


m_RegExp

protected BaseRegExp m_RegExp
the regular expression that the filenames must match to be extracted.


m_InvertMatching

protected boolean m_InvertMatching
invert matching sense.


m_CreateDirectories

protected boolean m_CreateDirectories
whether to restore the directory structure.


m_BufferSize

protected int m_BufferSize
the buffer size to use.

Constructor Detail

AbstractMultiDecompress

public AbstractMultiDecompress()
Method Detail

defineOptions

public void defineOptions()
Adds options to the internal list of options.

Specified by:
defineOptions in interface OptionHandler
Overrides:
defineOptions in class AbstractActor

setOutputDir

public void setOutputDir(PlaceholderDirectory value)
Sets output directory to use.

Parameters:
value - the directory

getOutputDir

public PlaceholderDirectory getOutputDir()
Returns the alternative output directory to use.

Returns:
the directory

outputDirTipText

public String outputDirTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

setRegExp

public void setRegExp(BaseRegExp value)
Sets the regular expression that the filenames must match.

Parameters:
value - the regular expression

getRegExp

public BaseRegExp getRegExp()
Returns the regular expression that the filenames must match.

Returns:
the regular expression

regExpTipText

public String regExpTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

setInvertMatching

public void setInvertMatching(boolean value)
Sets whether to invert the matching sense of the regular expression.

Parameters:
value - true if the matching sense is to be inverted

getInvertMatching

public boolean getInvertMatching()
Returns whether to invert the matching sense of the regular expression.

Returns:
true if the matching sense is to be inverted

invertMatchingTipText

public String invertMatchingTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

setCreateDirectories

public void setCreateDirectories(boolean value)
Sets whether to restore the directory structure from the archive.

Parameters:
value - true if the directory structure is to be restored

getCreateDirectories

public boolean getCreateDirectories()
Returns whether to restore the directory structure from the archive.

Returns:
true if the directory structure will be restored

createDirectoriesTipText

public String createDirectoriesTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

setBufferSize

public void setBufferSize(int value)
Sets the buffer size for the stream.

Parameters:
value - the size in bytes

getBufferSize

public int getBufferSize()
Returns the buffer size for the stream.

Returns:
the size in bytes

bufferSizeTipText

public String bufferSizeTipText()
Returns the tip text for this property.

Returns:
tip text for this property suitable for displaying in the GUI or for listing the options.

getQuickInfo

public String getQuickInfo()
Returns a quick info about the actor, which will be displayed in the GUI.

Specified by:
getQuickInfo in interface QuickInfoSupporter
Specified by:
getQuickInfo in interface Actor
Overrides:
getQuickInfo in class AbstractActor
Returns:
null if no info available, otherwise short string

accepts

public Class[] accepts()
Returns the class that the consumer accepts.

Returns:
the accepted input

generates

public Class[] generates()
Returns the class of objects that it generates.

Returns:
the generated output

decompress

protected abstract List<File> decompress(File inFile,
                                         StringBuilder result)
Decompresses the archive.

Parameters:
inFile - the archive to decompress
result - for storing any error output
Returns:
the decompressed files (full paths)

doExecute

protected String doExecute()
Performs the actual transformation.

Specified by:
doExecute in class AbstractActor
Returns:
null if everything is fine, otherwise error message


Copyright © 2013 University of Waikato, Hamilton, NZ. All Rights Reserved.