The File Piper user interface

The file piper user interface contains the following parts:

  • The toolbar containing the "Process", "Abort" and "Show/hide console" buttons along with controls to manage the profiles.
    • A file "pipeline" definition composed of:
      • The Source files selection.
      • One or many file processors, with their configuration.
      • The destination files selection.

      each component of the pripeline is surronunded by a "titled border" and provides a status bar. The components are linked by gray arrows showing the multiplicity (one or many) of the files that will be transferred.

In the example screenshot above, there are two processors: the 'tail' processor and then the 'zip' processor. You can see that the zip processor changes the file cardinality to one (as it groups all the input files to one output file) so in the destination section of the pipeline the GUI asks for one target file.

The main toolbar buttons

The main toolbar actions are:

  • Start : start the file processing defined by the current timeline.
  • Abort : abort the current file processing. All file processor will be stopped as soon as possible. The abort action will not try to restore the file system in it's previous state. It means than an "abort" can left created files half-written or corrupted.
  • Show/hide console : Show hide the console. The console is one of the file destination choice for the File Piper output. If you choose console output, the generated output is simply written to the console instead of file(s).

The profiles management

A profile is simply a pipeline definition stored in the application settings. If you have setup a pipeline that you want to reuse later, just click "store profile", give it a name and it's done. Later you will be able to choose the saved profile in the "current profile" combo-box to restore the stored pipeline.

Note that, in addition to the profile management, the File Piper automatically restore its last state at startup.

Pipeline definition

Source file(s) definition

The source for processing can be a single file or multiple files.

  • Single file: just select the file you want to process.
  • Multiple files: Select a base directory and include/exclude patterns to express which files (below this base directory) will be processed. The File Piper reminds the relative path of each file (vs. the chosen base directory). So, it is able to reconstruct the directory structure as output (if appropriate destination is selected).

The includes/excludes works like in apache-ant file sets. You can use the following wildcards:

  • ? : matches any character of a file/directory name (hence not the '/' or '\' character).
  • * : matches any sequence of character (including sequence of zero character) of a file or directory name.
  • ** : matches multiple directory levels (including zero directory)

You can put in the include and exclude fields several patterns separated by commas.

For example:

includes: *.java
excludes:
Includes all java file of the base directory
includes: **/*.java
excludes:
Includes all java file inside the base directory and all sub-directories
includes:
excludes: **/*Test*/**
Includes everything except the directories with name containing 'Test' (the sub-directories of those test directories are also excluded
includes: **/*.java, **/*.xml, resources/**
excludes: **/.svn/**
Includes everything java and XML files in addition to all the files below the 'resource' directory but exclude the files that are under a '.svn' directory

Note that, unlike apache-ant, the File Piper doesn't define default excludes. If you want to exclude some commonly excluded files or directories (like temporary files or source control data files) you have to specify it explicitly in the 'excludes'.

Tip: If you want to know exactly which files will be processed, use the 'List files' processor with 'Console' as destination. It will show to the console the list of selected input files.

Processor chain

Using the '+' and '-' buttons you can add/remove processor. The type of each processor is chosen in the combo-box of the 'titled' border.

The processor box contains a short description of the processor, input widgets to configure processor parameters and also a status bar to report processor progress during file processing. The meaning of those parameters and the exact displayed output depends on the implementation of each processor.

Destination

You can choose to write processed data to files or to the console. The written data is exactly the same in the file or in the console, except that for each file written in the console a line containing the proposed file name is added.

Obviously, the console is best suited for short text files (like output of the 'Search' or 'List files' processors).

If you choose 'file' output, depending on the output multiplicity you will be presented with different choices:

  • Single file output: You can overwite the source, accept the proposed name or choose yourself a new output file.
  • Multiple output: You have to choose a target directory. The directory structure found in base directory will be restored in this target directory. For the file names, you can choose to use tha same anme as the input files or a new name proposed by the file processors.