|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object net.sf.basedb.core.plugin.AbstractPlugin net.sf.basedb.core.plugin.AbstractExporterPlugin net.sf.basedb.plugins.PackedFileExporter
public class PackedFileExporter
Plug-in that packs one or more selected files and directories into a single file.
The actual packing is performed by classes implementing the FilePacker
interface. To add new formats, create a class that implements the interface and,
register the new class with a PluginConfiguration
item.
The compressed file can either be downloaded immediately to the local computer or stored into BASE's file system.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface net.sf.basedb.core.plugin.Plugin |
---|
Plugin.MainType |
Field Summary | |
---|---|
private static About |
about
|
private RequestInformation |
configureJob
|
private RequestInformation |
configurePlugin
|
private DbControl |
dc
|
private static GuiContext |
directoryGui
|
private static GuiContext |
fileGui
|
private static Set<GuiContext> |
guiContexts
|
private int |
numFiles
|
private PluginParameter<String> |
packerParameter
|
private static Set<Permissions> |
permissions
|
private PluginParameter<Boolean> |
removeFilesParameter
|
private List<Integer> |
selectedDirs
|
private List<Integer> |
selectedFiles
|
private List<Nameable> |
selectedFilesAndDirs
|
private ThreadSignalHandler |
signalHandler
|
private long |
totalBytes
|
Fields inherited from class net.sf.basedb.core.plugin.AbstractExporterPlugin |
---|
optionalSaveAsType, OVERWRITE, overwriteType, requiredSaveAsType, SAVE_AS |
Fields inherited from class net.sf.basedb.core.plugin.AbstractPlugin |
---|
annotationSection, configuration, COPY_ANNOTATIONS, job, OVERWRITE_ANNOTATIONS, sc |
Constructor Summary | |
---|---|
PackedFileExporter()
Create new instance. |
Method Summary | |
---|---|
protected void |
begin(DbControl dc)
Called just before the export starts. |
void |
configure(GuiContext context,
Request request,
Response response)
Configure the plugin. |
protected void |
end(boolean success)
Called just after everything has been committed to the database, or immediately after an error has ocurred. |
private String |
generateDefaultName(FilePacker packer,
Directory rootDir,
Collection<Nameable> selectedItems)
Generate a default name without a path for the packed file. |
private String |
generateDefaultPath(FilePacker packer,
Directory rootDir,
Collection<Nameable> selectedItems)
Generate a default path for the packed file. |
About |
getAbout()
Get information about the plugin, such as name, version, authors, etc. |
private RequestInformation |
getConfigureJobParameters(GuiContext context,
Boolean requireFile)
|
private RequestInformation |
getConfigurePluginParameters()
|
Set<GuiContext> |
getGuiContexts()
Get a set containing all items that the plugin handles. |
private FilePacker |
getPacker()
Get the FilePacker that has been configured in the current configuration. |
private FilePacker |
getPacker(String packerClass)
Create a FilePacker from the given class. |
Collection<Permissions> |
getPermissions()
Request create and delete access to File:s and Directory:s. |
RequestInformation |
getRequestInformation(GuiContext context,
String command)
This method will return the RequestInformation for a given command, i.e. |
SignalHandler |
getSignalHandler()
Get the signal handler that is handling signals on behalf of this object. |
protected String |
getSuccessMessage()
Called if the export was successful to let the subclass generate a simple message that is sent back to the core and user interface. |
String |
isInContext(GuiContext context,
Object item)
Check that at least one file or directory has been selected. |
private void |
loadFiles(DbControl dc,
Collection<Nameable> loadedFiles,
Directory directory)
Load files and subdirectories in the given directory. |
private void |
loadFilesAndDirectories(DbControl dc,
Collection<Nameable> loadedFiles,
Collection<Integer> files,
Collection<Integer> directories,
boolean recursive)
Load specified files and directories and put them in loadedFiles . |
protected void |
performExport(ExportOutputStream out,
ProgressReporter progress)
Perform the export. |
boolean |
requiresConfiguration()
Returns FALSE, since that is how the plugins used to work before this method was introduced. |
boolean |
supportsConfigurations()
Returns TRUE, since that is how the plugins used to work before this method was introduced. |
Methods inherited from class net.sf.basedb.core.plugin.AbstractExporterPlugin |
---|
doExport, getMainType, getOverwrite, getOverwriteParameter, getSaveAsParameter, getSaveAsPath, getSaveTo, pathCanBeUsed, run |
Methods inherited from class net.sf.basedb.core.plugin.AbstractPlugin |
---|
checkInterrupted, cloneParameterWithDefaultValue, closeLogFile, createLogFile, done, getCopyAnnotationsParmeter, getCurrentConfiguration, getCurrentJob, getJobOrConfigurationValue, getOverwriteAnnotationsParameters, init, log, log, storeValue, storeValue, storeValues, validateRequestParameters |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface net.sf.basedb.core.plugin.Plugin |
---|
done, getMainType, init, run |
Field Detail |
---|
private static final About about
private static final GuiContext fileGui
private static final GuiContext directoryGui
private static final Set<GuiContext> guiContexts
private static final Set<Permissions> permissions
private RequestInformation configureJob
private RequestInformation configurePlugin
private PluginParameter<Boolean> removeFilesParameter
private PluginParameter<String> packerParameter
private int numFiles
private long totalBytes
private List<Integer> selectedFiles
private List<Integer> selectedDirs
private List<Nameable> selectedFilesAndDirs
private ThreadSignalHandler signalHandler
private DbControl dc
Constructor Detail |
---|
public PackedFileExporter()
Method Detail |
---|
public About getAbout()
Plugin
getAbout
in interface Plugin
About
objectpublic boolean supportsConfigurations()
AbstractPlugin
supportsConfigurations
in interface Plugin
supportsConfigurations
in class AbstractPlugin
public boolean requiresConfiguration()
AbstractPlugin
requiresConfiguration
in interface Plugin
requiresConfiguration
in class AbstractPlugin
public Collection<Permissions> getPermissions()
getPermissions
in interface Plugin
getPermissions
in class AbstractPlugin
public Set<GuiContext> getGuiContexts()
InteractivePlugin
Item.REPORTER
.
This information is used by client applications to put the plugin
in the proper place in the user interface.
getGuiContexts
in interface InteractivePlugin
Set
containing Item
:s, or null
if the plugin is not concerned about itemspublic String isInContext(GuiContext context, Object item)
isInContext
in interface InteractivePlugin
context
- The current context of the client application,
it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
item
- The currently active item, it's type should match the
GuiContext.getItem()
type, or null if the context is a list
context
Null
if the plugin can use that item, or
a warning-level message explaining why the plugin can't be usedpublic RequestInformation getRequestInformation(GuiContext context, String command) throws BaseException
InteractivePlugin
RequestInformation
for a given command, i.e.
the list of parameters and some nice help text.
getRequestInformation
in interface InteractivePlugin
context
- The current context of the client application,
it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
command
- The command
RequestInformation
for the command
BaseException
- if there is an errorpublic void configure(GuiContext context, Request request, Response response)
InteractivePlugin
InteractivePlugin.getRequestInformation(GuiContext, String)
.
configure
in interface InteractivePlugin
context
- The current context of the client application,
it is one of the values found in set returned by InteractivePlugin.getGuiContexts()
request
- Request object with the command and parametersresponse
- Response object in for the plugin to response
throughprotected void begin(DbControl dc)
AbstractExporterPlugin
begin
in class AbstractExporterPlugin
dc
- The DbControl that is used to write to the database.
A subclass may use this read from the database as wellAbstractExporterPlugin.end(boolean)
protected void performExport(ExportOutputStream out, ProgressReporter progress) throws IOException
AbstractExporterPlugin
ImmediateDownloadExporter.doExport(ExportOutputStream, ProgressReporter)
method.
performExport
in class AbstractExporterPlugin
out
- Output stream to write the exported data toprogress
- An optional progress reporter
IOException
protected void end(boolean success)
AbstractExporterPlugin
AbstractExporterPlugin.begin(DbControl)
method here.
end
in class AbstractExporterPlugin
success
- TRUE if the file was parsed successfully, FALSE otherwiseAbstractExporterPlugin.begin(DbControl)
protected String getSuccessMessage()
AbstractExporterPlugin
178 reporters exported successfully
.
The default implementation always return null.
getSuccessMessage
in class AbstractExporterPlugin
public SignalHandler getSignalHandler()
SignalTarget
getSignalHandler
in interface SignalTarget
private RequestInformation getConfigureJobParameters(GuiContext context, Boolean requireFile)
private RequestInformation getConfigurePluginParameters()
private void loadFilesAndDirectories(DbControl dc, Collection<Nameable> loadedFiles, Collection<Integer> files, Collection<Integer> directories, boolean recursive)
loadedFiles
.
This method also calculates the total size of all files and stores it in
totalBytes
.
dc
- The DbControl to use for loadingloadedFiles
- The files and directories will be added to this collectionfiles
- The ID of the files to loaddirectories
- The ID of the directories to loadrecursive
- If we should recurse into subdirectories or notprivate void loadFiles(DbControl dc, Collection<Nameable> loadedFiles, Directory directory)
dc
- The DbControl to use for loadingloadedFiles
- The files and directories will be added to this collectiondirectory
- The parent directoryprivate FilePacker getPacker()
private FilePacker getPacker(String packerClass) throws Exception
packerClass
- The class name of a class that implements FilePacker
Exception
private String generateDefaultPath(FilePacker packer, Directory rootDir, Collection<Nameable> selectedItems)
FilePacker.getFileExtension()
is
automatically appeneded.
packer
- The current FilePackerrootDir
- The root directoryselectedItems
- The selected items (not including subdirectories)private String generateDefaultName(FilePacker packer, Directory rootDir, Collection<Nameable> selectedItems)
generateDefaultPath(FilePacker, Directory, Collection)
|
2.17.2: 2011-06-17 | ||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |