gate.util.reporting
Class PRTimeReporter

java.lang.Object
  extended by gate.util.reporting.PRTimeReporter
All Implemented Interfaces:
BenchmarkReportable

public class PRTimeReporter
extends Object
implements BenchmarkReportable

A reporter class to generate a report on total time taken by each processing element across corpus.


Field Summary
static String MEDIA_HTML
          This string constant when set as print media indicates that the report is printed in HTML format.
static String MEDIA_TEXT
          This string constant when set as print media indicates that the report is printed in TEXT format.
 HashSet<String> pipelineNames
          Names of the given pipeline for which the entries are present in given benchmark file.
static String SORT_EXEC_ORDER
          This string constant when set as sort order indicates that the processing elements are sorted in the order of their execution.
static String SORT_TIME_TAKEN
          This string constant when set as sort order indicates that the processing elements are sorted in the descending order of processing time taken by a particular element.
 int validEntries
          An integer containing the count of total valid log entries present in input file provided.
 
Constructor Summary
PRTimeReporter()
          No Argument constructor.
 
Method Summary
 Object calculate(Object reportContainer)
          Calculates the sub totals at each level.
 void executeReport()
          A single method to execute report (A command line counter part API ).
 File getBenchmarkFile()
           
 String getLogicalStart()
          Returns the marker indicating logical start of a run.
 String getPrintMedia()
          Returns the name of the media on which report will be generated. e.g. text, HTML.
 File getReportFile()
           
 String getSortOrder()
          Returns the sorting order specified for the report (EXEC_ORDER or TIME_TAKEN).
 boolean isSuppressZeroTimeEntries()
          Returns the flag indicating whether or not to suppress the processing elements from the report which took 0 milliseconds.
static void main(String[] args)
          A main method which acts as a entry point while executing a report via command line.
 void parseArguments(String[] args)
          Parses the report arguments.
 void printReport(Object reportSource, File outputFile)
          Prints a report as per the value provided for print media option.
 void setBenchmarkFile(File benchmarkFile)
          Sets the input benchmark file from which the report is generated.
 void setLogicalStart(String logicalStart)
          Sets optionally a string indicating the logical start of a run.
 void setPrintMedia(String printMedia)
          Sets the media on which report will be generated.
 void setReportFile(File reportFile)
          If not set, the default is the file name "report.txt/html" in the system temporary directory.
 void setSortOrder(String sortOrder)
          Sets the sorting order of the report.
 void setSuppressZeroTimeEntries(boolean suppressZeroTimeEntries)
          Allow to suppress the processing elements from the report which took 0 milliseconds.
 Object store(File inputFile)
          Stores GATE processing elements and the time taken by them in an in-memory data structure for report generation.
static void usage()
          Display a usage message
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MEDIA_TEXT

public static final String MEDIA_TEXT
This string constant when set as print media indicates that the report is printed in TEXT format.

See Also:
Constant Field Values

MEDIA_HTML

public static final String MEDIA_HTML
This string constant when set as print media indicates that the report is printed in HTML format.

See Also:
Constant Field Values

SORT_EXEC_ORDER

public static final String SORT_EXEC_ORDER
This string constant when set as sort order indicates that the processing elements are sorted in the order of their execution.

See Also:
Constant Field Values

SORT_TIME_TAKEN

public static final String SORT_TIME_TAKEN
This string constant when set as sort order indicates that the processing elements are sorted in the descending order of processing time taken by a particular element.

See Also:
Constant Field Values

validEntries

public int validEntries
An integer containing the count of total valid log entries present in input file provided.


pipelineNames

public HashSet<String> pipelineNames
Names of the given pipeline for which the entries are present in given benchmark file.

Constructor Detail

PRTimeReporter

public PRTimeReporter()
No Argument constructor.

Method Detail

store

public Object store(File inputFile)
             throws BenchmarkReportInputFileFormatException
Stores GATE processing elements and the time taken by them in an in-memory data structure for report generation.

Specified by:
store in interface BenchmarkReportable
Parameters:
inputFile - A File handle of the input log file.
Returns:
An Object of type LinkedHashMap containing the processing elements (with time in milliseconds) in hierarchical structure. Null if there was an error.
Throws:
BenchmarkReportInputFileFormatException

calculate

public Object calculate(Object reportContainer)
Calculates the sub totals at each level.

Specified by:
calculate in interface BenchmarkReportable
Parameters:
reportContainer - An Object of type LinkedHashMap containing the processing elements (with time in milliseconds) in hierarchical structure.
Returns:
An Object containing modified hierarchical structure of processing elements with totals and All others embedded in it.

printReport

public void printReport(Object reportSource,
                        File outputFile)
Prints a report as per the value provided for print media option.

Specified by:
printReport in interface BenchmarkReportable
Parameters:
reportSource - An Object of type LinkedHashMap containing the processing elements (with time in milliseconds) in hierarchical structure.
outputFile - Path where to save the report.

parseArguments

public void parseArguments(String[] args)
Parses the report arguments.

Specified by:
parseArguments in interface BenchmarkReportable
Parameters:
args - A string array containing the command line arguments.

usage

public static void usage()
Display a usage message


main

public static void main(String[] args)
                 throws BenchmarkReportInputFileFormatException
A main method which acts as a entry point while executing a report via command line.

Parameters:
args - A string array containing the command line arguments.
Throws:
BenchmarkReportInputFileFormatException

executeReport

public void executeReport()
                   throws BenchmarkReportInputFileFormatException
Description copied from interface: BenchmarkReportable
A single method to execute report (A command line counter part API ). Call this method after setting the report parameters.

Specified by:
executeReport in interface BenchmarkReportable
Throws:
BenchmarkReportInputFileFormatException

isSuppressZeroTimeEntries

public boolean isSuppressZeroTimeEntries()
Returns the flag indicating whether or not to suppress the processing elements from the report which took 0 milliseconds.

Returns:
suppressZeroTimeEntries A boolean indicating whether or not to suppress zero time entries.

setSuppressZeroTimeEntries

public void setSuppressZeroTimeEntries(boolean suppressZeroTimeEntries)
Allow to suppress the processing elements from the report which took 0 milliseconds.

Parameters:
suppressZeroTimeEntries - if true suppress zero time entries. This Parameter is ignored if SortOrder specified is SORT_TIME_TAKEN. True by default.

getPrintMedia

public String getPrintMedia()
Returns the name of the media on which report will be generated. e.g. text, HTML.

Returns:
printMedia A String containing the name of the media on which report will be generated.

setPrintMedia

public void setPrintMedia(String printMedia)
Sets the media on which report will be generated.

Parameters:
printMedia - Type of media on which the report will be generated. Must be MEDIA_TEXT or MEDIA_HTML. The default is MEDIA_HTML.

getSortOrder

public String getSortOrder()
Returns the sorting order specified for the report (EXEC_ORDER or TIME_TAKEN).

Returns:
sortOrder A String containing the sorting order.

setSortOrder

public void setSortOrder(String sortOrder)
Sets the sorting order of the report.

Parameters:
sortOrder - Sorting order of the report. Must be SORT_EXEC_ORDER or SORT_TIME_TAKEN. Default is SORT_EXEC_ORDER.

getLogicalStart

public String getLogicalStart()
Returns the marker indicating logical start of a run.

Returns:
logicalStart A String containing the marker indicating logical start of a run.

setLogicalStart

public void setLogicalStart(String logicalStart)
Sets optionally a string indicating the logical start of a run.

Parameters:
logicalStart - A String indicating the logical start of a run. Useful when you you have marked different runs in your benchmark file with this string at their start. By default the value is null.

getBenchmarkFile

public File getBenchmarkFile()
Returns:
benchmarkFile path to input benchmark file.
See Also:
setBenchmarkFile(java.io.File)

setBenchmarkFile

public void setBenchmarkFile(File benchmarkFile)
Sets the input benchmark file from which the report is generated. By default use the file named "benchmark.txt" from the application execution directory.

Parameters:
benchmarkFile - Input benchmark file.

getReportFile

public File getReportFile()
Returns:
reportFile file path where the report file is written.
See Also:
setReportFile(java.io.File)

setReportFile

public void setReportFile(File reportFile)
If not set, the default is the file name "report.txt/html" in the system temporary directory.

Parameters:
reportFile - file path to the report file to write.