/** File: Globals.java */
/**
* Class Global variables used as the base class for HTMLtools.
* Until we [REFACTOR] the JTV (Java TreeView), TestsIntersection ,
* and GenBatchScripts converters to
* separate applications, the variables reside here.
*
*
* List of Methods
* reinitGlobalSwitches() - reinitialize Global variable switches.
* reinitGBSglobalSwitches() - reinitialize GBS Global variable switches.
* reinitTIglobalSwitches() - reinitialize TestsIntersection Global switches.
* reinitJTVglobalSwitches() - reinitialize JTV Global variable switches.
*
*
* This code is available at the HTMLtools project on SourceForge at
* http://htmltools.sourceforge.net/
* under the "Common Public License Version 1.0"
*
* http://www.opensource.org/licenses/cpl1.0.php .
*
* It was derived and refactored from the open source
* MAExplorer (http://maexplorer.sourceforge.net/), and
* Open2Dprot (http://Open2Dprot.sourceforge.net/) Table modules.
*
* $Date: 2009/12/5 11:45:56 $ $Revision: 1.40 $
*
* Copyright 2008, 2009 by Peter Lemkin
* E-Mail: lemkin@users.sourceforge.net
* http://lemkingroup.com/
*
*/
public class Globals
{
/* --- Version specific constants for help menu --- */
/** Program name */
final public static String
programName= "HTMLtools";
/** Reference Manual is "MANUAL.html" for CvtTabDelim2HTML
* and "ReferenceManual.html" for HTMLtools.
*/
final public static String
referenceManual= "ReferenceManual.html";
/** Open Source help string */
final public static String
openSourceNotice=
"This code is available at the HTMLtools project on SourceForge at\n"+
"http://htmltools.sourceforge.net/ under the Common Public License Version 1.0\n"+
"http://www.opensource.org/licenses/cpl1.0.php\n"+
"\n"+
"It was derived and refactored from the open source\n"+
"MAExplorer (http://maexplorer.sourceforge.net/), and\n"+
"Open2Dprot (http://Open2Dprot.sourceforge.net/) \n"+
"Copyright 2008, 2009 by Peter Lemkin\n"+
"E-Mail: lemkin@users.sourceforge.net\n";
/** program summary */
final public static String
programSummary=
" - Summary\n\n"+
programName+" is a Java program to automate the batch conversion of\n"+
"tab-delimited spreadsheet type text files to HTML Web-page files. There are\n"+
"a variety of flexible options to make the Web page presentations more\n"+
"useful. It can also be used for editing large tables. This is described\n"+
"in more detail throughout this reference manual.\n"+
"\n"+
"Additional command subsets were developed for specialized conversions\n"+
"(JTVconvert, GenBatchScripts, and TestsIntersections) and may be ignored for\n"+
"routine Web page generation in other domains where they don't apply.\n"+
"\n"+
"The JTVconvert commands can re-map data array names in Java TreeView mAdb\n"+
"data set files to more user friendly experiment names as well as generat\n"+
"HTML Web pages to launch these converted JTV files for each JTV data set.\n"+
"\n"+
"The GenBatchScripts commands may be used to generate CvtTabDelim2HTML batch\n"+
"scripts for subsequent processing given a list of data test-results files to\n"+
"convert and a tab-delimited tests descriptions file. It is able to use a table\n"+
"(prepared with Excel or some other source) that describes this data and can\n"+
"then use that for extracting and inserting information from various mapping\n"+
"tables into the generated Web pages.\n"+
"\n"+
"The TestsIntersections commands will synthesize a tests intersection summary\n"+
"table and Web page as well as generating some summary statistics. It uses the\n"+
"same data used in the GenBatchScripts commands.\n"+
"\n"+
"The FlipTable commands will create a flipped table and HTML web page with filtered\n"+
"rows and columns flipped. It uses an edited data table (.txt) file that has been\n"+
"further processed to create an associated Index Map (.idx) and Statistics Index"+
"Map (.sidx) tables. It can be invoked from a graphical user interface using the"+
"SearchGui option.\n"+
"\n";
/* [1] ---------------- Class instances ------------------- */
/** Instance of the main module */
public static HTMLtools
cvt= null;
/** Global Convert instance */
public Convert
convert;
/** Global FileTable instance */
public FileTable
fio;
/** Global Switches instance */
public Switches
sw;
/** Global utilities UtilCM instance */
public UtilCM
util;
/** Total command list arg list originally set from main(args) */
public String
argsV[]= null;
/** Parameter command list file is used. */
public String
paramMapFile= null;
/** Directory with the Parameter command list file. Used as
* a base directory for other .map files.
*/
public String
paramMapDir= null;
/** Parameter command list string if parameter file is used. */
public String
sParamsStr= null;
/* [2] ---------------- Static constants ------------------- */
/** flag: for debugging - always TRUE*/
public static boolean
ALWAYS= true;
/** flag: for debugging - always FALSE */
public static boolean
NEVER= false;
/** flag: set if want logging file */
final public static boolean
MAKE_LOGGING_FILE= true;
/** flag: primary debug flag - only while debugging */
public static boolean
DBUG_FLAG= true;
/* [2.1] --- Preset sizes of data structures --- */
/** Maximum number of input files */
final public int
MAX_INPUT_FILES= 1000;
/** Size beyond which an -exportBig cell is considered
* to be BIG */
final public int
EXPORT_BIG_CELL_SIZE= 200;
/** Size beyond which a -shrinkBig cell is considered
* to be BIG */
final public int
SHRINK_BIG_CELL_SIZE= 100;
/** Decrease font size by this amount if a cell is considered
* to be BIG */
final public int
SHRINK_CELL_SIZE= -5;
/** max # of tokens/row of an input file */
public final int
MAX_IN_TOKENS_PER_ROW= 512;
/** The max # of Columns to URL maps
* from "-hrefData:{colHdrName,UrlBaseLink,mapToken}" switches */
final public int
MAX_COL2URL_MAPS= 100;
/** The max mapDollarsigns instances using -mapDollarsigns switchs. */
final public int
MAX_MAP_DOLLARSIGNS= 100;
/** The max mapQuestionmarks instances using -mapQuestionark switchs. */
final public int
MAX_MAP_QUESTIONMARKS= 100;
/** The max sort columns instances using -sortRowsByColumn switch.*/
final public int
MAX_SORT_COLUMNS= 100;
/** The max number of columns instances that be be specified using
* -dropColumn and -keepColumn switches.
* */
final public int
MAX_COL_EDITS= 200;
/** The maximum number of param .map specifications in the
* '-batchProcess:{file of param specifications}' switch.
*/
final public int
MAX_BATCH_SPECS= 500;
/** The maximum number of Summary Template specifications in the
* '-genSummaryTemplate:{orderNbr,templateFileName}' switch.
*/
final public int
MAX_TEMPLATES= 30;
/** The maximum number of directory tree and file specifications to
* copy switch.
*/
final public int
MAX_COPY_FILES_AND_TREES= 75;
/* [3] ---------------- OS related variables ------------------- */
/** top level GUI title */
public String
title;
/** JVM ("os.name") that we are running in */
public static String
osName;
/** JVM ("file.separator") */
public static String
fileSep;
/** user directory - JVM ("user.dir")+fileSep */
public static String
userDir;
/** date captured when this program is run */
public String
date;
/** flag: true if Windows PC */
public static boolean
isWinPCflag;
/** flag: true if SUNOS */
public static boolean
isSunFlag;
/** flag: use Max list of required fields */
public static boolean
isMacFlag;
/** Log file that is written out at the end before exiting.
* The default is programName+".log" which is overridden by
* the 'logName:{new log file name ending in ".log"}' switch.
* It is overwritten using the '-logging:{newLogFileName}'.
* */
public String
logFileName;
/** New line separator will be CRLF or LF etc. */
public String
newline;
/* [4] ------------- Simple switch flags ------------------- */
/** Add row numbers to the preface of each row with the
* "-addRowNumbers" switch.
*/
public boolean
addRowNumbersFlag= false;
/** Add a postfix name to the output file before the .html. E.g.,
* for an output file 'abc.html', with a postfix name of '-xyz',
* the new name is 'abc'xyz.html'. It is set with
* '-addOutfilePostfix:{postfix name}' switch.
*/
public String
addOutfilePostfixName= "";
/** Use an HTML font size!= null, i.e. +1, +2, -1, -2, etc.
* with "-fontSizeHtml:{font Size modifier}" command line switch.
* Default is to decrease the size by -1.
*/
public String
useHTMLfontSize= "-1";
/** Flag set if the TABLE does not have a border. The default is to
* use a 'BORDER=1'. Cleared with the "-noBorder" switch.
*/
public boolean
noBorderFlag= false;
/** Flag cleared if the input table does NOT have a header,
* default is that it has a header. Cleared with the "-noHeader" switch.
*/
public boolean
hasTableHeaderRowFlag= true;
/** Set to true to look for empty line(s) BEFORE the table data.
* Set with the "-hasEmptyLineBeforeTable"
* */
public boolean
hasEmptyLineBeforeTableFlag= false;
/** Flag set if the input table MAY have duplicate fields in the header,
* default is no duplicates in the header. Set with the "-allowHdrDups"
* switch.
*/
public boolean
ignoreDuplicateFieldsFlag= false;
/** Flag set if remove trailing blank lines and trailing empty columns
* at the end of the table, default is to allow blank lines. Set with the
* "-rmvTrailingBlankRowsAndColumns" switch.
*/
public boolean
rmvTrailingBlankRowsAndColumnsFlag= false;
/** Flag to map a ;; delimited cell string to an list.
* Set with the "-mapOptionsList" switch. Default is no mapping.
*/
public boolean
makeOptionsListFromSemicolonListFlag= false;
/** If set to a HTML color, then alternate the background
* cell colors in alternate rows in the . Default is no
* alternating of colors colors.
* Set with the '-alternateRowBackgroundColor:{c}' switch.
*/
public String
altRowBackgroundColor= null;
/**
* Flag to make a separate preface HTML file from the input text
* proceeding the table data. The file has the same name, but has a
* "preface-" string in the name. Default no preface file.
* Set by '-makePrefaceHTML' switch.
*/
public boolean
makePrefaceHTMLflag= false;
/** Number of lines of the Table header "-hdr:{# lines in header}"
* switches. The number of Table header lines with default of 1.
* If > 1 line, then the Table Fields searched for URL mapping are
* The last one in the header row. All header lines are bolded
* with TH rather than TD.
*/
public int
nbrTableHdrLines= 1;
/** When looking for the start of a Table in file with complex info
* and possibly multiple blank lines, this switch lets the converter
* search for a specific keyword as any part of the last Table header
* line allowing you to specify multiple header lines using the
* '-hdrLines' switch. Default no keyword search.
* Set by '-startTableAtKeywordLine:{keyword} switch.
*/
public String
startTableAtKeywordLine= null;
/** Reduce the number of header lines to 1 even if there are more
* than 1 header line. Set by '-useOnlyLastHeaderLine'.
*/
public boolean
useOnlyLastHeaderLineFlag= false;
/* [4.1] --- Switch '-hdrMapName:{oldHdrColName,newHdrColName}' --- */
/**
* List of old header map column names. List is of size
* nHdrMapColName and is allocated [0:MAX_COL_EDITS-1].
* Set by '-hdrMapName:{oldHdrColName,newHdrColName}' switch.
*/
public String
oldHdrMapColNames[]= null;
/**
* List of new header map column names. List is of size
* nHdrMapColName and is allocated [0:MAX_COL_EDITS-1].
* Set by '-hdrMapName:{oldHdrColName,newHdrColName}' switch.
*/
public String
newHdrMapColNames[]= null;
/**
* Number of mappings to check when map header column names.
* Set by number of '-hdrMapName:{oldHdrColName,newHdrColName}' switch
* entries.
*/
public int
nHdrMapColNames= 0;
/* [5] ---- Switch '-addTableName:{table name to use}' ------ */
/** Add the table name as a HTML header just before the table
* with "-addTableName:{table name to use}" switch.
*/
public boolean
addTableNameFlag= false;
/** The table name as a HTML header just before the table
* with "-addTableName:{table name to use}" switch.
* This is added as preface text if it is defined.
*/
public String
addTableName= null;
/* [6] ----- Switch '-mapQuestionmarks:{keyword,toString}' ------ */
/**
* Map prologue, epilogue and cell data of the form '??keyword??' to
* 'toString'. If the keyword is 'ANY', then map any keyword string
* to bold and red. It is set by '-mapQuestionmarks:{keyword,toString}'
* switch.
*/
public boolean
mapQuestionmarksFlag= false;
/**
* List of keywords when map prologue, epilogue and cell data of the
* form '??keyword??' to 'toString'. List is of size
* nMapQuestionmarks and is allocated [0:MAX_MAP_QUESTIONMARKS-1].
* See the mapQuestionmarksFlag for details.
*/
public String
mapQkeywords[]= null;
/**
* List of toString words when map prologue, epilogue and cell data of
* the form '??keyword??' to 'toString'. List is of size
* nMapQuestionmarks and is allocated [0:MAX_MAP_QUESTIONMARKS-1].
* See the mapQuestionmarksFlag for details.
*/
public String
mapQtoString[]= null;
/**
* Number of mappings to check when map prologue, epilogue and cell data
* of the form '??keyword??' to 'toString'. See the mapQuestionmarksFlag
* for details.
*/
public int
nMapQuestionmarks= 0;
/* [6.1] ----- Switch '-mapDollarsigns:{$$keyword$$,toString}' ------ */
/**
* Map prologue, epilogue and cell data of the form '$$keyword$$' to
* 'toString'. If the keyword is 'ANY', then map any keyword string
* to bold and red. It is set by '-mapDollarsigns:{$$keyword$$,toString}'
* switch.
*/
public boolean
mapDollarsignsFlag= false;
/**
* List of keywords when map prologue, epilogue and cell data of the
* form '$$keyword$$' to 'toString'. List is of size
* nMapDollarsigns and is allocated [0:MAX_MAP_DOLLARSIGNS-1].
* See the mapDollarsignsFlag for details.
*/
public String
mapDkeywords[]= null;
/**
* List of toString words when map prologue, epilogue and cell data of
* the form '$$keyword$$' to 'toString'. List is of size
* nMapDollarsigns and is allocated [0:MAX_MAP_DOLLARSIGNS-1].
* See the mapDollarsignsFlag for details.
*/
public String
mapDtoString[]= null;
/**
* Number of mappings to check when map prologue, epilogue and cell data
* of the form '$$keyword$$' to 'toString'. See the mapDollarsignsFlag
* for details.
*/
public int
nMapDollarsigns= 0;
/* [7] ---- Switch '-exportBigCellsToHTMLfile:{opt. size for big}' ---- */
/** Set with '-exportBigCellsToHTMLfile:{opt. size for big}' switch.
* Flag set to save the contents of big cells as separate HTML files
* with prefix 'bigRC-. Does not map
* colHdr names.
* Default is no exporting of big cells.
*/
public boolean
exportBigCellsToHTMLfileFlag= false;
/** This is the big cell threshold used when exporting
* large cells. It is set with
* '-exportBigCellsToHTMLfile:{opt. size for big}'
* switches.
*/
public int
bigExportCellThr= EXPORT_BIG_CELL_SIZE;
/** This is the big cell font size decrement used when shrinking
* large cells. It is set with switch
* '--shrinkB:{opt. size for big,opt. font size decrement}'
*/
public int
bigCellFontSize= SHRINK_CELL_SIZE;
/* [8] --- Switch '-shrinkB:{opt. size for big,opt. font size decr.}' --- */
/** Shrink big cells in the table with more than bigShrinkCellThr
* characters by decreasing the font size by bigCellFontSize
* for those cells. with the
* "-shrinkB:{opt. size for big,opt. font size decrement}" switch.
*/
public boolean
shrinkBigCellsFlag= false;
/** This is the big cell threshold used when shrinking
* large cells. It is set with the
* '--shrinkB:{opt. size for big,opt. font size decrement}'
* switches.
*/
public int
bigShrinkCellThr= SHRINK_BIG_CELL_SIZE;
/* [8.1] --- Switch '-showDataHeatmapFlipTable' --- */
/** Flag used to generate colored heat-map data cells in a HTML conversion
* for a flip table using the '-flipTableByIndexMap' option. It uses the
* global statistics on the (digital) data in the Statistics Index Map .sidx
* fileIF IT EXISTS to normalize the data and generate a cell color background
* range in 7 quantiles of colors: dark green, medium green, light green,
* white, light red, medium red, dark red. It is set by the
* "-showDataHeatmapFlipTable" switch.
*/
public boolean
showDataHeatmapFlipTableFlag= false;
/** Set if using the Statistics Index Map file (.sidx). */
public boolean
hasStatIndexMapFileFlag= false;
/** Global min value from data table computed in DataRowStatisticsIndexMap
* class and saved in a .sidx Table file. */
public float
glbMinRowVal= 0.0F;
/** Global max value from data table computed in DataRowStatisticsIndexMap
* class and saved in a .sidx Table file. */
public float
glbMaxRowVal= 0.0F;
/** Global mean value from data table computed in DataRowStatisticsIndexMap
* class and saved in a .sidx Table file. */
public float
glbMeanRowVal= 0.0F;
/** Global stdDev value from data table computed in DataRowStatisticsIndexMap
* class and saved in a .sidx Table file. */
public float
glbStdDevRowVal= 0.0F;
/** Heat-map cell color background range in 7 quantiles of colors:
* dark green, middle green, light green, white, light red, middle red, dark red .
* It is set by the "-showDataHeatmapFlipTable" switch.
*/
public static String
heatMapColors[]= {
"#89CA9D", /* dark green */
"#BEDFC4", /* medium green */
"#EBF4EA", /* light green */
"#FFFFFF", /* white */
"#FEEDE3", /* light red */
"#FAC6AA", /* medium red */
"#F39E77" /* dark red */
};
/**
* Colormap data scale quantile TABLE HTML mapping the cvt.heatMapColors[]
* quantiles to positive numeric value in range of
* [cvt.glbMinRowVal, cvt.glbMaxRowVal]. Computed by
* convert.makeColorMapScaleHTML() if
* cvt.showDataHeatmapFlipTableFlag and cvt.hasStatIndexMapFileFlag are set.
*/
public String
colorMapScaleHTML= "";
/**
* Sets the precision to use in numeric data for a generated HTML file.
* The table must be a numeric data table (such as generated using the
* '-flipTableByIndexMap' option. If the value is< 0, then use the full
* precision of the data (as supplied in the input string data). If
* {nbr digits precision} >= 0, then clip digits as required.
* Set by the '-dataPrecisionHTMLtable:{nbr digits precision}' switch.
*/
public int
dataPrecisionHTMLtable= -1;
/* This specifies the name of field in the flip table to use in sorting by
* column data in descending order in the generated table. It is used with the
* '-flipTableByIndexMap' option. Note this name can be any of the flipped
* header column values (multiheader data names}. When doing the sort it
* matches the specified name with any of the header rows to find the column
* to use for the sort. Set by "-sortFlipTableByColumnName:{col data name}"
* switch.
*/
public String
sortFlipTableByColumnName= null;
/* [9] ---- Switch '-concatTables:{outputConcatenateFile.txt}' ---- */
/**
* The '-concatTables:{outputConcatenateFile.txt}' switch enables
* this option by setting the switch.create a new merged
* tab-delimited .txt output file from the set of input text
* files IFF they have exactly the same column header names.
* The -outputDir switch specifies where the file is saved.
* The output file is in concatOutputTxtFile.
* Default is not to merge the input files.
*/
public boolean
concatInputFilesWithSameFieldsFlag= false;
/**
* The output .txt file for
* '-concatTables:{outputConcatenateFile.txt}' switch.
* Default is not to concatenate the input files.
*/
public String
concatOutputTxtFile= null;
/**
* The output .html file name derived from
* '-concatTables:{outputConcatenateFile.txt}'switch.
* Default is not to concatenate the input files.
*/
public String
concatOutputHtmlFile= null;
/**
* This contains the concatenated Table data for the processing
* with the '-concatTables:{outputConcatenateFile.txt}' switch.
*/
public FileTable
ftConcat= null;
/* [9.1] --- Switch '-makeMapFile:{makeMapTblFileName,orderedCommaColList}' --- */
/**
* Name of the map file to be made (only) at the same time we do
* a -concatTable operation. It is set with the switch
* -makeMapFile:{makeMapTblFileName,orderedCommaColList}.
* The associated map column names are in
* makeMapColNames[0:nMakeMapColNames-1].
*/
public String
makeMapTblFileName= null;
/**
* Ordered list of column names to be used in the map file being created.
* This is only done at the same time we do a -concatTable operation.
* It is set with the switch
* -makeMapFile:{makeMapTblFileName,orderedCommaColList}.
* The associated map file is makeMapTblFileName. The number
* of entries is nMakeMapColNames.
*/
public String
makeMapColNames[]= null;
/**
* Number of entries in the ordered lList of column names makeMapColNames[]
* to be used in the map file being created. This is only done at the same
* time we do a -concatTable operation. It is set with the switch
* -makeMapFile:{makeMapTblFileName,orderedCommaColList}.
*/
public int
nMakeMapColNames= 0;
/* [10] --- Switch '-mapHdrNames:{mapFile,fromHdrName,toHdrName}' --- */
/** Map long to short header names. Default is no mapping.
* It is set by
* '-mapLongToShortHdrNames:{long2Short names map file,
* opt. toColumnNbr}' switch.
*/
public boolean
mapHdrNamesFlag= false;
/** Name of names mapping file (From_name\tTo_name) used to map long
* to short header names. Default is
* "mapHdrNames.map". It is set by
* '-mapHdrNames:{mapFile,fromFieldName,toFieldName}"' switch.
*/
public String
mapHdrNamesFile= "mapHdrNames.map";
/** The FromColumnNbr of mapping file (From_name\tTo_name) used
* to map long to short header names. Default is 1. Ranges from
* 1 not 0. It is set by
* '-mapLongToShortHdrNames:{long2Short names map file,
* opt. toColumnNbr}' switch. Also set by
* '-mapHdrNames:{mapFile,fromHdrName,toHdrName}' switch.
*/
public int
long2ShortFromColNbr= 1;
/** The ToColumnNbr of mapping file (From_name\tTo_name) used
* to map long to short header names. Default is 2. Ranges from
* 1 not 0. It is set by
* '-mapLongToShortHdrNames:{long2Short names map file,
* opt. toColumnNbr}' switch. Also set by
* '-mapHdrNames:{mapFile,fromHdrName,toHdrName}' switch */
public int
long2ShortToColNbr= 2;
/** The long 'From_name' from the (From_name\tTo_name) data used to
* map long to short header names. It is set by
* '-mapToShortHdrNames:{long2ShortHdrNamesTable.map}'
*/
public String
fromLongHdrNamesMap[]= null;
/** The short 'To_name' from the (From_name\tTo_name) data used
* to map long to short header names. It is set by
* '-mapLongToShortHdrNames:{long2ShortHdrNamesTable.map}'
*/
public String
toShortHdrNamesMap[]= null;
/** The length of the (From_name\tTo_name) data used to
* map long to short header names. It is set by
* '-mapLongToShortHdrNames:{long2ShortHdrNamesTable.map}'
*/
public int
nLong2ShortHdrNamesMap= 0;
/** The Long to Short mapping Table read by Switches with the
* '-mapLongToShortHdrNames:{long2ShortHdrNamesTable.map}'
*/
public FileTable
ftL2S= null;
/* [11] --- Switch '-extractRow:{colName,rowNbr,resTblFile,htmlStyle}' --- */
/**
* Flag to to get and lookup a keyword in the table being processed
* at (colName,rowNbr) and then to search a resourceTblFile for
* that keyword. If it found, then it will extract the header row
* and the data row from the resource file and create HTML of
* htmlStyle. This string is then inserted into the front of the
* epilogue. The htmlStyles may be DL, OL, UL and and Table.
* Default is no row extraction. The args are specified with the
* '-extractRow:{colName,rowNbr,resourceTblFile,htmlStyle}'
* switch. It has associated variables: extractColName,
* extractRowNbr, extractResTblFile, extractHtmlStyle.
*/
public boolean
extractRowFromResTblAsHTMLflag= false;
/**
* The column name for the current table keyword used
* to extract the data specified with the
* '-extractRow:{colName,rowNbr,resourceTblFile,htmlStyle}'
* switch. See extractRowFromResTblAsHTMLflag for details.
*/
public String
extractColName= null;
/**
* The row number for the current table keyword used
* to extract the data specified with the
* '-extractRow:{colName,rowNbr,resourceTblFile,htmlStyle}'
* switch. See extractRowFromResTblAsHTMLflag for details.
*/
public int
extractRowNbr= -1;
/**
* The resource Table file from which to extract the data
* specified with the
* '-extractRow:{colName,rowNbr,resourceTblFile,htmlStyle}'
* switch. See extractRowFromResTblAsHTMLflag for details.
*/
public String
extractResTblFile= null;
/**
* The extractHtmlStyle used to process the data extracted
* with the
* '-extractRow:{colName,rowNbr,resourceTblFile,htmlStyle}'
* switch. The htmlStyles may be DL, OL, UL and TABLE.
* See extractRowFromResTblAsHTMLflag for details.
*/
public String
extractHtmlStyle= "DL";
/* [12] --- Switch '-sortRowsByColumn:{colName,'A'sc | or 'D'es}' ---- */
/**
* Flag to sort the rows of the Table by values in the specified
* column. You can specify 'Ascending' or 'D'escending. This is
* done after any columns have been dropped or reordered. Default
* is not to sort the rows. The column name is in
* sortRowsByColumn and the sort direction in sortTableAscendingFlag.
* It is set by the
* -sortRowsByColumn:{colName,'A'scending or 'D'escending} switch.
*/
public boolean
sortRowsByColumnFlag= false;
/**
* Name of column to sort the rows of the Table by values in this
* column. It is set by the
* -sortRowsByColumn:{colName,'A'scending or 'D'escending} switch.
*/
public String
sortTableColName[]= null;
/**
* Flag to specify the sort direction of the rows of the Table by
* values in the specified column. You specify 'Ascending' or
* 'D'escending. The sortRowsByColumnFlag is set when sorting.
* It is set by the
* -sortRowsByColumn:{colName,'A'scending or 'D'escending} switch.
*/
public boolean
sortTableAscendingFlag[]= null;
/**
* The number of instances of the sort rows by column switch
* -sortRowsByColumn:{colName,'A'scending or 'D'escending}.
* When it does the test for the column, if one fails, it goes on
* to test the next etc. It uses the first one it finds.
*/
public int
nSortTable= 0;
/* [13] --- Switch '-reorderColumn:{colName,newColNbr}' ----- */
/** List of Column header names [0:nReorderColName-1] from
* '-reorderColumn:{colName,newColNbr}' to reorder this
* column to the new column number in reorderColNbr[].
* You may specify multiple new columns (they must be different).
* Those columns not specified are moved toward the right.
* This is done after the list of dropped columns has been
* processed. Each entry builds a list of nReorderColName entries.
*/
public String
reorderColName[]= null;
/** New column index of size [0:nReorderColName-1] from
* '-reorderColumn:{colName,newColNbr}' to reorder the
* columns in reorderColName[] to the new column number in
* reorderColNbr[]. empty entries are filled with -1.
* Each entry builds a list of nReorderColName entries.
*/
public int
reorderColNbr[]= null;
/** Size of list of Column header names
* reorderColName[0:nReorderColName-1] from
* '-reorderColumn:{colName,newColNbr}' to reorder this
* column to the new column number in
* reorderColNbr[0:nReorderColName-1].
*/
public int
nReorderColName= 0;
/* If doing a set of -reorderColumn operations, sort the
* remaining columns not specified, but that are used,
* alphabetically. Set by "-reorderRemainingColumns".
*/
public boolean
reorderRemainingColumnsFlag= false;
/* [14] -- Switch '-hrefData:{colHdrName,UrlBaseLink,mapTokenInUrl}' -- */
/** Column header name from
* "-hrefData:{colHdrName,UrlBaseLink,mapTokenInUrl}"
* switches. Each entry builds a list of nColUrlMap entries.
* See also the '-hrefHeaderRow' switch.
*/
public String
colHdrNameHmapData[]= null;
/** URL base link from
* "-hrefData:{colHdrName,UrlBaseLink,mapTokenInUrl}"
* switches. Each entry builds a list of nColUrlMap entries.
* Max size is MAX_COL2URL_MAPS.
*/
public String
urlBaseLinkHmapData[]= null;
/** Map Token name in the URL to replace with the column cell data
* from "-hrefData:{colHdrName,UrlBaseLink,mapTokenInUrl}"
* switches. Each entry builds a list of nColUrlMap entries.
*/
public String
mapTokenInUrlHmapData[]= null;
/** index of the Column header name in the tField[] data
* from "-hrefData:{colHdrName,UrlBaseLink}" switches.
* Each entry builds a list of nColUrlMap entries.
* Max size is MAX_COL2URL_MAPS. Note: the array must
* be defined, but null values are set to -1.
*/
public int
colHdrIdxHmapData[]= null;
/** The index of the map entry indexed by column for the
* URL maps from "-hrefData:{colHdrName,UrlBaseLink}" switches
* Each entry builds a list of nColUrlMap entries.
* -1 values indicates no map for this column.
* Max size is MAX_IN_TOKENS_PER_ROW.
*/
public int
nColUrlHmapData= 0;
/** This switch is used with the '-hrefData:{colHdrName,Url,
* (optional)mapToken}' switch to map the data in the header row(s)
* instead of the data in the Table data columns. It searches the first
* column of the header rows to find the colHdrName to determine the
* row to be mapped to that colHdrName. Unlike the -hrefData option,
* the colHdrName can be embedded within a string. The default is not
* to map the header rows. Set by the '-hrefHeaderRow' switch.
*/
public boolean
hrefHeaderRowFlag= false;
/* [15] ---- Switch '-dropColumnName:{column header name}' ------ */
/**
* List of columns to drop in the output set by the
* '-dropColumnName:{column header name}' switch. There can be
* multiple instances of this switch. It may be used as an
* alternative to -keepColumn switches as the Table may have known
* column names.The list size is nDropColNames.
*/
public String
dropColNames[]= null;
/**
* Size of the dropColNames[] list to drop from the in outout.
*/
public int
nDropColNames= 0;
/* [16] ---- Switch '-keepColumnName:{column header name}' ------ */
/**
* List of columns to keep in the output set by the
* '-keepColumnName:{column header name}' switch. There can be
* multiple instances of this switch. It specifies which columns
* to keep in multiple instances of the switch. Then, when the Table
* is processed, it drops all columns not listed. It may be used as an
* alternative to -dropColumn as the Table may have unknown column
* names. Default is not active. The list size is nKeepColNames.
*/
public String
keepColNames[]= null;
/**
* Size of the keepColNames[] list to drop from the in outout.
*/
public int
nKeepColNames= 0;
/* [17] ---- Switch '-files:f1,f2,...,fn' ------ */
/** Specific list of input files string from "-files:f1,f2,...,fn"
* cmd line switch.
*/
public String
specificInputFileList= null;
/** List of input files (with inputExt) to convert */
public String
inputFiles[]= null;
/** Current input file being analyzed (w/o full path */
public String
curInputFile= null;
/** List of input files (without inputExt) to convert */
public String
inputNames[]= null;
/** # of input files found in inputDataDir */
public int
nInputFiles= 0;
/** List of input files (with inputExt) to convert */
public String
outputFiles[]= null;
/** Input file extension */
public String
inputExt= ".txt";
/** Output file extension */
public String
outputExt= ".html";
/* [17.1] ---- Switch '-joinTableFile:{joinTableFile}' ------ */
/* Add the contents of a joinTable file to the table being processed.
* This can allow us to add fields that can be used for sorting.
* This switch can not be used with the -fastEditFile option.
* Set by the '-joinTableFile:{joinTableFile}' switch.
*/
public String
joinTableFile= null;
/* [17.2] -- Switch '-limitMaxTableRows:{maxNbrRows,(opt.)sortFirstByColName}' -- */
/* Limit the number of rows in the input table by deleting any rows
* beyond this 'maxNbrRows' (if 0, then ignore the command).
* Set by '-limitMaxTableRows:{maxNbrRows,(opt.)sortFirstByColName,
* (opt.)'A'scending or 'D'escending}' switch.
*/
public boolean
limitMaxTableRowsFlag= false;
/* The number of rows in the input table to limit by deleting any rows
* beyond this 'maxNbrRows' (if 0, then ignore the command).
* Set by '-limitMaxTableRows:{maxNbrRows,(opt.)sortFirstByColName,
* (opt.)'A'scending or 'D'escending}' switch.
*/
public int
limitMaxTableRows= 0;
/* SortBy Column name used before limit the number of rows in the input
* table by deleting any rows beyond this 'maxNbrRows' (if 0, then
* ignore the command).
* Set by '-limitMaxTableRows:{maxNbrRows,(opt.)sortFirstByColName,
* (opt.)'A'scending or 'D'escending}' switch.
*/
public String
limitRowsSortByColName= null;
/* Sort directoion for SortBy Column name used before limit the number
* of rows in the input table by deleting any rows beyond this 'maxNbrRows'
* (if 0, then ignore the command).
* Set by '-limitMaxTableRows:{maxNbrRows,(opt.)sortFirstByColName,
* (opt.)'A'scending or 'D'escending}' switch.
*/
public boolean
limitRowsSortAscendingFlag= true;
/* [18] --- Switch '-inputDir:{inputTXTdir}, ---
* --- '-outputDir:{outputHTMLdir}' ---
* --- '-tableDir:{tablesDirectory}' (and '-jtvTableDir') --- */
/** Input Data Path to use from "-inputDir:{inputTXTdir}" command,
* default is "data".
*/
public String
inputDataDir= null;
/** Output Data Path to use from "-outputDir:{outputHTMLdir}" command,
* default is "html".
*/
public String
outputDataDir= null;
/** Tables Path to use for various mapping tables specified with
* the "-tableDir:{tablesDirectory}" command, default is "data.Table".
* NOTE: this variable is also set with '-jtvTableDir' switch.
*/
public String
tableDataDir= null;
/* [19] --- Switch '-addPrologFile:{file}' & '-addEpilogueFile:{file}' --- */
/** HTML prolog file. If null indicates no file with
* "-addPrologFile:{file}" switch.
*/
public String
prologFile= "prolog.html";
/** HTML epilogue file. If null indicates no file with
* "-addEpilogueFile:{file}" switch.
*/
public String
epilogueFile= "epilogue.html";
/** HTML prolog string. If null indicates no prolog */
public String
prolog= null;
/** HTML epilogue string. If null indicates no epilogue */
public String
epilogue= null;
/* [20] --- Switch '-saveEditedTable2File:{outTblFile,opt. "noHTML"}' --- */
/** Save edited data Table in an output file.
* Set by the '-saveEditedTable2File:{outTblFile,opt. "HTML"}' switch.
*/
public boolean
saveEditTableFlag= false;
/** Make a Table file from the modified input table stream.
* edited by -dropColumns, -keepColumns, -reorderColumns,
* -sortRowsByColumn. If the "saveHTML" option is set
* (saveEditHTMLflag), also output the HTML when doing this operation.
* Set by the '-saveEditedTable2File:{outTblFile,opt. "noHTML"}' switch.
*/
public String
saveEditedTable2File= null;
/** Save output HTML when doing a -saveEditedTable2File operation.
* Normally don't want the HTML, just the map file.
* Set by the '-saveEditedTable2File:{outTblFile,opt. "HTML"}' switch.
*/
public boolean
saveEditHTMLflag= false;
/** Converter generated HTML files path list. Files added
* when each HTML file is successfully generated.
* See cvt.addNameOfHTMLfile(), cvt.clearGenHTMLpathList(),
* getGenHTMLpathList().
* Note: this list is only used in the GUI for supplying a list
* of created HTML files to view, although it is
* created and maintained in the non-GUI processing as well.
*/
public static String
genHTMLpathList[]= null;
/* [20.1] --- Switch '-noTXT' --- */
/** Allow generation of TXT when doing a input file processing
* if that operation also allows TXT generation. This is useful
* if generating a HTML file from a concatenated file, but the
* .txt file is not desired. Set by the '-noHTML' switch.
*/
public boolean
makeTXTflag= true;
/* [20.2] --- Switch '-noHTML' --- */
/** Allow generation of HTML when doing a input file processing
* if that operation also allows HTML generation. This is useful
* if doing editing of large input files to generate index maps
* or saved files.
* Set by the '-noHTML' switch.
*/
public boolean
makeHTMLflag= true;
/** [20.3] Allow processing input file data line by line table that
* does not buffer the data in a Table structure, but remaps each line
* on the fly using '-mapLongToShortHdrNames:{L2SmapFile, opt. toCol#}',
* {-dropColumns or -keepColumns} followed by -reorderColumns.
* Data is written immediately to a BufferedWrite stream so it can
* handle huge files. Because it is sequential, it can't do a
* -sortRowsByColumnData. This would generally be used to generate a
* tab-delim .txt files that can be random accessed. It is used
* instead of '-saveEditedTable2File:{outTblFile,opt. "noHTML"}'
* which overides the -saveEditedTable2File options. The filename
* is saved in saveEditedTable2File. This option is set by the
* '-fastEditFile:{opt. output file}' switch.
*/
public boolean
fastEditFileFlag= false;
/* [21] --- Switch '-makeIndexMapFile:{colName1,...,colNameN}' --- */
/** Make an index map Table file (same name as the input file
* but with an .idx file extension) of the input file (or the file
* output from -saveEditedTable2File after the input table has been
* edited). The index file will contain the specified columns in the
* column-list (i.e., colNameIndexMap[0:nColNameIndexMap-1] ) followed
* by the ("StartByte", "EndByte") 2-tuple for data in the input table
* with those column values. This file can then be used to quickly
* index a huge input file probably using a Hash table of the selected
* column names instances to lookup the (start,end) file byte pointers
* to random access the large file.
*/
public boolean
makeIndexMapFileFlag= false;
/**
* Name of the input file (run time) used to make an index map Table
* file (same name as the input file but with an .idx file extension)
* of the input file (or the file output from -saveEditedTable2File
* after the input table has been edited). Enabled by the
* '-makeIndexMapFile:{colName1,colName2,...,colNameN}' switch.
*/
public String
makeIndexMapFile= null;
/** This is the list of column names to be used when generating the
* index map file colNameIndexMap[0:nColNameIndexMap-1]. The
* default is not to save an index map file. The start of the
* column header occurs when find all colNames in the same row.
* Set by the '-makeIndexMapFile:{colName1,colName2,...,colNameN}'
* switch.
*/
public String
colNameIndexMap[]= null;
/** Number of column names colNameIndexMap[0:nColNameIndexMap-1] to
* be used when generating the index map file. The default is not to
* save an index map file. Set by the '-makeIndexMapFile:{colName1,
* colName2,...,colNameN}' switch.
*/
public int
nColNameIndexMap= 0;
/** Make a 'Statistics Index Map' Table file with the same base file
* name as the index map (.idx) but with a .sidx file extension. It is invoked
* after the IndexMap file is created (using the '-makeIndexMapFile' switch).
* Therefore, it must be specified in a subsequent command line (if using batch).
* Set by the "-makeStatisticsIndexMapFile" switch.
*/
public boolean
makeStatisticsIndexMapFlag= false;
/* [21.1] --- Switch '-flipTableByIndexMap:{indexMapFile}' --- */
/** Generate transposed files using random access file indexing to create
* a multi-line header (1 line for each column name in the list) using
* the list of columns previously specified when generating the index map
* file with '-makeIndexMapFile:{colName1,colName2,...,colNameN}' command.
* The processing is done in the the MakeFlipTable class.
* It analyzes the index map Table and then uses all columns before the
* ("StartByte", "EndByte") columns to define the flipped Table header.
* See the '-flipColumnName:{flipColumnFile,flipColumnName}' to
* restrict which flipped column data to use.
* See the '-flipRowFilterNames:{flipRowFilterNamesFile}' or
* See the '-flipRowFilterNames:{*LIST*,name1,name2,...,nameK}' to
* restrict which flipped row data to use.
* It is set by '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch.
*/
public boolean
flipTableByIndexMapFlag= false;
/**
* Name of the data file to be used when flipping a table.
* Set by '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch.
*/
public String
flipDataFile= null;
/**
* Name of the Index Map file to be used when flipping a table.
* Set by '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch.
*/
public String
flipIndexMapFile= null;
/** Maximum number of rows to flip from the flipDataFile */
public int
maxFlipSeekRowsToExtract= 100;
/** This is the file that contains the list of column names to be used
* when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}' switch.
* Set by the '-flipColumnName:{flipColumnFile,flipColumnName}' or
* '-flipColumnName:{*LIST*,flipColumnName,v1,v2,...vn}'
* switch. The {flipColumnFile} contains a list of data to be
* filtered for {flipColumnNames}. Multiple switches are specified with
* nFlipColumns being the size of the list.
*/
public String
flipColumnFile[]= null;
/** These are the list of column names to be used when generating the flipped
* Table using the '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the '-flipColumnName:{flipColumnFile,flipColumnName}' or
* '-flipColumnName:{*LIST*,flipColumnName,v1,v2,...vn}'
* switch. The {flipColumnFile} contains a list of data to be
* filtered for {flipColumnNames}. Multiple switches are specified with
* nFlipColumns being the size of the list. The lists are
* flipColumnName[0:nFlipColumns-1].
*/
public String
flipColumnName[]= null;
/** These are the list of column name values {v1,v2,...vn} to be used when
* generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the '-flipColumnName:{flipColumnFile,flipColumnName}' or
* '-flipColumnName:{*LIST*,flipColumnName,v1,v2,...vn}'
* switch. The {flipColumnFile} contains a list of data to be
* filtered for {flipColumnNames}. Multiple switches are specified with
* nFlipColumns being the size of the list. The lists are
* flipColumnName[0:nFlipColumns-1].
*/
public String
flipColumnValues[][]= null;
/** This is the number of columns and the related lists to be used
* in filtering rows when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the '-flipColumnName:{flipColumnFile,flipColumnName}'
* switch. The {flipColumnFile} contains a list of data to be
* filtered for {flipColumnNames}. Multiple switches are specified with
* nFlipColumns being the size of the list.
*/
public int
nFlipColumns= 0;
/** This is the exact match filter flag. If an exact match, then
* match flipColNameFilterData[][] exactly with equalsIgnoreCase(),
* otherwise do lower case IndexOf() comparison to pick up substrings.
* Set with the -flipUseExactColumnNameMatch:{TRUE | FALSE} switch.
*/
public boolean
flipTableUseExactMatchFlag= true;
/** This is the name of the file containing the row names to be used
* when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'.
* Set by '-flipRowFilterNames:{flipRowFilterNamesFile}' or
* '-flipRowFilterNames:{*LIST*,name1,name2,...,nameK}' switch.
* The contents of the file is saved in flipRowFilterNames[] used
* when flipping the table. If there are no names specified,
* then flip all rows.
*/
public String
flipRowFilterNamesFile= null;
/** This is the list of row names [0:nFlipRowFilterNames-1] to be used
* when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile}' switch.
* Set by '-flipRowFilterNames:{flipRowFilterNamesFile}' or
* '-flipRowFilterNames:{*LIST*,name1,name2,...,nameK}' switch.
* The contents of the file or the list is saved in flipRowFilterNames[].
*/
public String
flipRowFilterNames[]= null;
/** Size of the list of row names [0:nFlipRowFilterNames-1] to be used
* when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile}' switch.
* Set by '-flipRowFilterNames:{flipRowFilterNamesFile}' or
* '-flipRowFilterNames:{*LIST*,name1,name2,...,nameK}' switch.
* The contents of the file or the list is saved in flipRowFilterNames[].
*/
public int
nFlipRowFilterNames= 0;
/* The list of substring filters used to filter EG rows for flipped
* table computation when using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile}' switch
* by matching substrings in the GSP ID names. Set by
* "-flipRowGSPIDfilters:"{substring list}".
*/
public String
flipRowGSPIDfilters[]= null;
/** These are the list of column names to be used in the flipped header
* when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the
* '-flipOrderHdrColNames:{colHdrName1,colHdrName2,...,colHdrNameN}'
* switch. The lists are flipOrderHdrColList[0:nFlipOrderHdrColList-1].
*/
public String
flipOrderHdrColList[]= null;
/** These are the size of the list of column names to be used in the
* flipped header when generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the
* '-flipOrderHdrColNames:{colHdrName1,colHdrName2,...,colHdrNameN}'
* switch. The lists are flipOrderHdrColList[0:nFlipOrderHdrColList-1].
*/
public int
nFlipOrderHdrColList= 0;
/** These are the list of column names to exclude when generating the flipped
* Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the '-flipExcludeColumnName:{flipExcludeColumnName}'
* switch. Multiple switches are specified with
* nExcludeFlipColumns being the size of the list. The lists are
* flipExcludeColumnName[0:nFlipExcludeColumns-1].
*/
public String
flipExcludeColumnName[]= null;
/** This is the number of column names to exclude when generating the flipped
* Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the '-flipExcludeColumnName:{flipExcludeColumnName}'
* switch. Multiple switches are specified with
* nExcludeFlipColumns being the size of the list. The lists are
* flipExcludeColumnName[0:nFlipExcludeColumns-1].
*/
public int
nFlipExcludeColumns= 0;
/** Flag to indicate reporting fold change in flip Table reporting,
* when both Class A and B are defined. Set by both
* "-flipAclass:{flipAclass}" and "-flipBclass:{flipBclass}" specified.
*/
public boolean
reportFoldChangeFlag= false;
/** If reporting fold change in flip Table reporting,
* then "-flipAclass:{flipAclass}" specifies the Class A samples.
* If both Class A and B are defined, the Switches() parser sets
* reportFoldChangeFlag.
*/
public String
flipAclass= null;
/** If reporting fold change in flip Table reporting,
* then "-flipBclass:{flipBclass}" specifies the Class A samples.
* If both Class A and B are defined, the Switches() parser sets
* reportFoldChangeFlag.
*/
public String
flipBclass= null;
/** If reporting fold change with reportFoldChangeFlag in flip Table
* reporting, and -flipFCthreshold:{flipFCthreshold}, then
* set the flipFCthrFlag and save the postive value in
* flipFCthreshold.
*/
public float
flipFCthreshold= 0.0F;
/** If reporting fold change with reportFoldChangeFlag in flip Table
* reporting, and -flipFCthreshold:{flipFCthreshold}, then
* set the flipFCthrFlag and save the postive value in
* flipFCthreshold.
*/
public boolean
flipFCthrFlag= false;
/** This is the alternate output (HTML and TXT) base directory to use when
* generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the"-flipDirectory:{flipDirectory}".
* If the switch is not specified, it will use the base outputDataDir name.
*/
public String
flipDirectory= null;
/** This is the alternate output (HTML and TXT) base file name to use when
* generating the flipped Table using the
* '-flipTableByIndexMap:{flipDataFile,flipIndexMapFile,(opt)maxRows}'
* switch. Set by the"-flipSaveOutputFile:{flipSaveOutputFile}".
* If the switch is not specified, it will use the base input file name.
* It will add the "-search" after this base address and before the ".txt"
* and ".html".
*/
public String
flipSaveOutputFile= null;
/* [22] --- Switch '-batchProcess:{file of param specifications}' --- */
/** Do batch processing of a list of param.map type files specified
* in a file. Set by the initial '-batchProcess:{file of param specs,
* opt. new working dir}' switch. If the {opt. new working dir}value
* is specified, it will change the current working directory to
* batchCwd for the CvtTabDelim2HTML when runnning -batchProcess so
* that you can specify it run in a particular environment.
* No other switches should be used with this as they will be ignored.
* If errors occur in any of the batch jobs, the errors are logged in
* the HTMLtools.log file and it aborts that particular job and
* continues on to do the next job in the batch list. This is parsed
* into the list batchParamsSpecs[0:maxBatchParamsSpecs-1]. The current
* batch being processed is in batchParamsSpecs[curBatchParamsSpecs].
*/
public boolean
batchProcessFlag= false;
/** The batch process file containing the list of param
* specifications.
* Set by the '-batchProcess:{file of param specifications}' switch.
*/
public String
batchProcessFile= null;
/** The optional directory to run the batch script in if specified,
* else use the current directory. Set by the'-batchProcess:{file of
* param specs, opt. new working dir}' switch.
* */
public String
batchCwd= null;
/** This is the old current directory before it was changed by
* a new working directory set by the'-batchProcess:{file of
* param specs, opt. new working dir}' switch.
* */
public String
oldUserDir= null;
/** Is a list of batch parameter specifications from the original
* -batchParam list specified by the batchParamFile. The list is
* of size maxBatchParamsSpecs
*/
public String
batchParamsSpecs[]= null;
/** Number of batch param specs in the batch file. Set by the
* '-batchProcess:{file of param specifications}' switch.
*/
public int
maxBatchParamsSpecs= 0;
/** Current batch param specification being processed in the
* batchParamsSpecs[] list. */
public int
curBatchParamsSpecs= 0;
/** Current batch job number being processed. This ignores comment
* lines starting with '#'.
*/
public int
curBatchJobNbr= 0;
/** The contents of the batchProcessFile to process. */
public String
batchProcessStr= null;
/* [23] --- Switch '-copyTree:{srcTreeFiles,destPath}' --- */
/** Copy input source file to output destination file in
* copySrcFile[0:nCopyFile-1] to copyDstFile[0:nCopyFile-1].
* Set by -copyFile:{srcFile,destFile}.
*/
public boolean
copyFileFlag= false;
/** Number of instances of file copy specifications in
* copySrcFile[0:nCopyFile-1] to copyDstFile[0:nCopyFile-1].
* set by the '-copyFile:{srcFile,destFile}' switch.
* See copyFileFlag for details.
*/
public int
nCopyFile= 0;
/** List of source input data file paths [0:nCopyTreeDir-1].
* Set by the '-copyFile:{srcFile,destFile}' switch.
* See copyFileFlag for details.
*/
public String
copySrcFile[]= null;
/** List of destination output data file paths [0:nCopyFile-1].
* Set by the '-copyFile:{srcFile,destFile}' switch.
* See copyFileFlag for details.
*/
public String
copyDstFile[]= null;
/* [24] --- Switch '-copyTree:{srcTreeFiles,destPath}' --- */
/** Copy input data tree files to to output directory in
* copyTreeSrcDir[0:nCopyTreeDir-1] to copyTreeDstDir[0:nCopyTreeDir-1].
* Set by -genTreeCopy:{srcTreeFiles,destPath}.
*/
public boolean
copyTreeDataFlag= false;
/** Number of instances of tree file copy specifications in
* copyTreeSrcDir[0:nCopyTreeDir-1] to copyTreeDstDir[0:nCopyTreeDir-1].
* set by the '-copyTree:{srcTreeFiles,destPath}' switch.
* See copyTreeDataFlag for details.
*/
public int
nCopyTreeDir= 0;
/** List of source input data tree paths [0:nCopyTreeDir-1].
* Set by the '-copyTree:{srcTreeFiles,destPath}' switch.
* See copyTreeDataFlag for details.
*/
public String
copyTreeSrcDir[]= null;
/** List of destination output data tree paths [0:nCopyTreeDir-1].
* Set by the '-copyTree:{srcTreeFiles,destPath}' switch.
* See copyTreeDataFlag for details.
*/
public String
copyTreeDstDir[]= null;
/* [25] --- Switch '-dirIndexHtml:{dir,'O'verride}}' --- */
/** Make an "index.html" file of all of the files in the specified
* directories in the list of directories dirIndexHtml[0:nDirIndexHtml-1].
* This is useful when copying a set of directories on a Web server
* that does not show the contents of the directory if there is no
* index.html file. In addition, if the corresponding flag
* dirIndexHtmlOverrideFlag[0:nDirIndexHtml-1] is set to 'Override',
* then override the "index.html" file it it already exists in that
* directory otherwise do not generate the "index.html" file. Do
* this recursively on each directory.
* Set by '-dirIndexHtml:{dir,'O'verride}' switch.
*/
public boolean
dirIndexHtmlFlag= false;
/** Number of instances of tree file copy specifications in
* dirIndexHtml[0:nDirIndexHtml-1].
* Set by '-dirIndexHtml:{dir,'O'verride}' switch.
*/
public int
nDirIndexHtml= 0;
/** List of relative directory paths [0:nDirIndexHtml-1].
* Set by '-dirIndexHtml:{dir,'O'verride}' switch.
* See dirIndexHtmlFlag for details.
*/
public String
dirIndexHtml[]= null;
/** List of 'O'veride (true) flags [0:nDirIndexHtml-1].
* Set by '-dirIndexHtml:{dir,'O'verride}' switch.
* See dirIndexHtmlFlag for details.
*/
public boolean
dirIndexHtmlOverrideFlag[]= null;
/* ************************************************************** */
/* *** [TODO] [REFACTOR] to separate GenBatchScripts program **** */
/* ************************************************************** */
/* [GBS.1] --- Switch '--genBatchScript:{...}' --- */
/**
* Generate a set of parameter .map files in the batchDir directory.
* These can then be run by a converter batch file called with the same
* base name as the {test-ToDo-list.txt} file, but with a ".doit" file
* extension. The operation also creates a BAT script to start the
* converter on this data called {test-ToDo-list.bat} for use with
* Windows. The paths created in the used for the inputTreeDir and
* outputTreeDir base paths and use the "Relative Directory" data in
* the test-ToDo-list.txt within those directories. This will process
* a data set to generate a set of HTML pages and converted database
* .txt files defined by the {test-ToDo-list.txt} database.
* Set with -genBatchScripts:{mAdb-TestsToDo.txt,batchScripts,
* ParamsScripts,InputTree,Summary,Analyses,JTV}
* Note: (currently), DO NOT reset these variables in
* reinitGlobalSwitches().
*/
public boolean
genBatchScriptFlag= false;
/** The name of the of the {test-ToDo-list.txt} file to process.
* See genBatchScriptFlag for more details.
* Set by -genTestFiles:{TestToDoList File} switch.
* // -genTestFiles:"mAdb-TestsToDo.txt"
*/
public String
genTestToDoListFile= null;
/** The name of the of the {introductionMapFile} file to process.
* This contains the "Introduction" paragraph index by Tissue.
* Set by -genMapIntroduction:{introductionMapFile} switch.
* //e.g. -genMapIntroduction:"CellTypeTissue.map"
*/
public String
genMapIntroduction= null;
/** The name of the of the {EGdetailsMapFile} file to process.
* This contains the "Details" paragraph index by Expression Group.
* Set by -genMapEGdetails:{EGdetailsMapFile} switch.
* // e.g. -genMapEGdetails:"ExperimentGroups.map"
*/
public String
genMapEGdetails= null;
/** The name of the {batchScripts} directory to put the other
* directories. See genBatchScriptFlag for more details.
*/
public String
genBatchDir= null;
/** The name of the {ParamsScripts} directory (inside of the genBatchDir)
* where the generated params .map files are saved and the support .map
* files are also copied. See genBatchScriptFlag for more details.
*/
public String
genParamsScriptsDir= null;
/** The name of the {inputTreeDir} directory (inside of the genBatchDir)
* where the input data to be processed by the batch params .map files
* are copied. This is used when the batch script is subsequently run.
* See genBatchScriptFlag for more details.
*/
public String
genInputTreeDir= null;
/** The name of the {Summary} directory (inside of the genBatchDir)
* where the generated Summary HTML web files are saved.
* See genBatchScriptFlag for more details.
*/
public String
genSummaryDir= null;
/** The name of the {Analyses} directory (inside of the genBatchDir)
* where the generated tests HTML web files are saved when the batch
* script is subsequently run.
* See genBatchScriptFlag for more details.
*/
public String
genAnalysesDir= null;
/** The name of the {JTV} directory (inside of the genBatchDir)
* where the generated tests HTML web files are saved when the batch
* script is subsequently run.
* See genBatchScriptFlag for more details.
*/
public String
genJTVDir= null;
/* [GBS.2] --- Switch '-genSummaryTemplate:{orderNbr,templateFileName}' --- */
/** List of Summary Templates that are used for mapping the
* test-ToDo-list data so that (summaryProlog, summaryExperimental,
* summaryAnalysis, summaryFurtherAnalysis, summaryEpilogue) etc.
* dynamically. Set by -genSummaryTemplate:{orderNbr,templateFileName}
* instances that can be used to generalize the currently hardwired.
* These are then mapped into the following keywords that may appear
* in any of these templates: $$TISSUE$$, "$$LIST_EXPR_GROUPS$$",
* $$DESCRIPTION$$, $$ANALYSIS$$, $$FURTHERANALYSIS$$, $$DATE$$.
* The $$INTRODUCTION$$ is extracted from the {"CellTypeTissue.map"}.
* Multiple instances are allowed where they are concatenenated by the
* orderNbr associated with each template.
* Note: (currently), DO NOT reset these variables in
* reinitGlobalSwitches().
*/
public boolean
genSummaryTemplateFlag= false;
/**
* List of order numbers when define the Summary Templates. List is
* of size nGenSummaryTemplates and is allocated [0:MAX_TEMPLATES-1].
* See the genSummaryTemplateFlag for details.
*/
public int
genSummaryTemplateOrderNbrs[]= null;
/**
* List of templateFileName entries when define the Summary Templates.
* List is of size nGenSummaryTemplates and is allocated
* [0:MAX_TEMPLATES-1]. See the genSummaryTemplateFlag for details.
*/
public String
genSummaryTemplateNames[]= null;
/**
* Number of Summary Templates . See the genSummaryTemplateFlag
* for details.
*/
public int
nGenSummaryTemplates= 0;
/* [GBS.3] --- Switch '-genParamTemplate:{name,paramTemplateFileName}' --- */
/** List of Parameter map Templates that are used for mapping the
* test-ToDo-list data so that (param-MRR, param-MRR-keep, param-JTV) etc.
* dynamically. Set by -genParamTemplate:{name,paramTemplateFileName}
* instances that can be used to generalize the currently hardwired.
* These are then mapped into the following keywords that may appear in
* any of these templates: $$TISSUE$$, "$$TEST_NAME$$", "$$MRR_FILE$$",
* $$DESCRIPTION$$, $$PROLOG$$, $$EPILOG$$, $$DATE$$.
* Multiple instances are allowed where they are concatenenated by the
* orderNbr associated with each template.
* Note: (currently), DO NOT reset these variables in
* reinitGlobalSwitches().
*/
public boolean
genParamTemplateFlag= false;
/**
* List of order numbers when define the Param Templates. List is
* of size nGenParamTemplates and is allocated [0:MAX_TEMPLATES-1].
* See the genParamTemplateFlag for details.
*/
public String
genParamTemplateNames[]= null;
/**
* List of paramTemplateFileName entries when define the Param Templates.
* List is of size nGenParamTemplates and is allocated
* [0:MAX_TEMPLATES-1]. See the genParamTemplateFlag for details.
*/
public String
genParamTemplateFiles[]= null;
/**
* Number of Param Templates. See the genSummaryTemplateFlag
* for details.
*/
public int
nGenParamTemplates= 0;
/* [GBS.4] --- Switch '-genCopySupportFile:{support file}' --- */
/**
* List of support files to copy to the batchScriptsDir.
* The support files are specified with a list created using
* multiple instances of -genCopySupportFile:{support file}.
* The size of the list is nSupportFilesToCopy.
*/
public String
genSupportFilesToCopy[]= null;
/**
* Number of support files to copy to the batchScriptsDir. See the
* supportFilesToCopy for details. Set by multiple instances of
* -genCopySupportFile:{support file} switch.
*/
public int
nGenSupportFilesToCopy= 0;
/* [GBS.5] --- Switch '-genParamTemplate:{name,paramTemplateFileName}' --- */
/** Copy input data tree data to batch scripts subdirectory.
* Set by -genTreeCopy:{srcTreeFiles,destPath}.
* Note: (currently), DO NOT reset these variables in
* reinitGlobalSwitches().
*/
public boolean
genTreeCopyDataFlag= false;
/** Number of instances to copy input data tree data to batch
* scripts subdirectory for copying
* genTreeSrcTreeDir[0:nGenTreeCopy-1] directory trees to
* genTreeDstTreeDir[0:nGenTreeCopy-1].
* Set by -genTreeCopy:{srcTreeFiles,destPath}.
* Note: (currently), DO NOT reset these variables in
* reinitGlobalSwitches().
*/
public int
nGenTreeCopy= 0;
/** Source input data tree data to batch scripts subdirectory.
* Copying genTreeSrcTreeDir[0:nGenTreeCopy-1] directory trees to
* genTreeDstTreeDir[0:nGenTreeCopy-1].
* Set by -genTreeCopy:{srcTreeFiles,destPath}.
* See the genTreeCopyDataFlag for details.
*/
public String
genTreeSrcTreeDir[]= null;
/** Destination output data tree path to batch scripts subdirectory.
* Copying genTreeSrcTreeDir[0:nGenTreeCopy-1] directory trees to
* genTreeDstTreeDir[0:nGenTreeCopy-1].
* Set by -genTreeCopy:{srcTreeFiles,destPath}.
* See the genTreeCopyDataFlag for details.
*/
public String
genTreeDstTreeDir[]= null;
/* [GBS.6] --- Switch '-genTestsIntersection:{}' --- */
/** Generate Tests-Intersection params .map files and insert links
* into $$TEST-INTERSECTION$$ which is "" otherwise.
* Set by -genTestsIntersection:{}.
* Note: (currently), DO NOT reset these variables in
* reinitGlobalSwitches().
*/
public boolean
genTestsIntersectionFlag= false;
/* ************************************************************** */
/* ** [TODO] [REFACTOR] to separate TestsIntersection program *** */
/* ************************************************************** */
/* [TI.1] --- Switch '-makeTestsIntersectionTbl:{testsToDoFile}' --- */
/**
* Do Tests Intersection mapping.
* Set by -makeTestsIntersectionTbl:{testsToDoFile}
*/
public boolean
makeTestsIntersectionTableFlag= false;
/**
* The ToDo tests file to use in Tests Intersection mapping.
* Set by -makeTestsIntersectionTbl:{testsToDoFile}
*/
public String
testsToDoTblFile= null;
/* [TI.2] --- Switch '-filterTestTestIntersection:{testTableField,
* d1,d2,...,dn}' --- */
/**
* Specifies the tField name of Tests-ToDo Table data to test.
* It is set by setTestFilterList(). This is used when deciding
* which tests in Tests-ToDo Table to include. All tests are
* included if there is no filterTests. Otherwise, only use those
* that match the filter. The matchTestFilter() tests the current
* data against the filter data.
* Set by -filterTestTestIntersection:{testTableField,d1,d2,...,dn}.
*/
public String
filterTestField= null;
/**
* Specifies the list of filter instances to test.
* It is set by setTestFilterList(). This is used when deciding
* which tests in Tests-ToDo Table to include. All tests are
* included if there is no filterTests. Otherwise, only use
* those that match the filter. The matchTestFilter() tests
* the current data against the filter data.
* Set by -filterTestTestIntersection:{testTableField,d1,d2,...,dn}.
*/
public String
filterTestsList[]= null;
/* [TI.3] --- Switch '-filterDataTestIntersection:{dataTableField,
* d1,d2,...,dn}' --- */
/**
* Specifies the tField name of MRR Table data to test. It is set by
* setDataFilterList(). This is used when deciding which data rows
* in MRR Table to include. All tests are included if there is no
* filterTests. Otherwise, only use those that match the filter.
* The matchDataFilter() tests the current data against the filter data.
* Set by -filterDataTestIntersection:{dataTableField,d1,d2,...,dn}.
*/
public String
filterDataField= null;
/**
* Specifies the list of filter instances to test. It is set by
* setDataFilterList(). This is used when deciding which data rows
* in MRR Table to include. All tests are included if there is no
* filterTests. Otherwise, only use those that match the filter.
* The matchDataFilter() tests the current data against the filter data.
* Set by -filterDataTestIntersection:{dataTableField,d1,d2,...,dn}.
*/
public String
filterDataList[]= null;
/* [TI.4] --- Switch 'addFCrangesForTestsIntersectionTable' --- */
/** Add FC range computations, then expand the TI table and
* add the three columns ("Max FC", "Min FC", "FC Range").
* Set by the '-addFCrangesForTestsIntersectionTable' switch.
*/
public boolean
addFCrangesForTestsIntersectionTableFlag= false;
/** Add the ("Range Mean A", "Range Mean B" and "FC counts %")
* computations to an expanded TestsIntersectionTable table.
* Set by the '-addRangeOfMeansToTItable' switch.
*/
public boolean
addRangeOfMeansToTItableFlag= false;
/* ************************************************************** */
/* ***** [TODO] [REFACTOR] to separate JTVconverter program ***** */
/* ************************************************************** */
/* [JTV.1] --- Switch '-jtvNamesMap:{...specifications}' --- */
/** Flag set if doing
* '-jtvNamesMap:{mAdbArraySummaryFile,mapHdrFile,fromHdrName,toHdrName}'.
* Note other optional switches are '-jtvInputDir:{jtvInputSubDir}'
* and '-jtvOutputDir:{jtvOutputSubDir}'.
* [REFACTOR] to separate JTVconverter program.
*/
public boolean
jtvMapFlag= false;
/** Flag set by '-jtvHTMLgenerate'. Generate a HTML file to invoke
* the JTV applet for each JTV specification in the jtvInputDir.
* It puts the HTML file in the jtvOutputDir. Some of the non-JTV HTML
* modification switches are operable including: -addEpilogue,
* -addOutfilePostfix, -addProlog, -mapDollarsigns, -mapQuestionmarks.
* Also the -jtvDescription may be used to insert additional text
* into the prolog where it replaces "$$DATA_DESCRIPTION$$".
* [REFACTOR] to separate JTVconverter program.
*/
public boolean
jtvHTMLgenerateFlag= false;
/** String set with '-jtvDescription:{prolog description}' that
* may be used with '-jtvHTMLgenerate' to insert additional
* text into the prolog where it replaces "$$DATA_DESCRIPTION$$".
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtvDescription= "";
/** String set with '-jtvButtonName:{button label}' that may be
* used with '-jtvHTMLgenerate' to label the button to activate
* Java TreeView.
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtvButtonName= "Press to bring up Java TreeView";
/** If doing 'jtvHTMLgenerate', then you can use the
* '-jtvCopyJTVjars:{JTV jars directory}' option to copy the
* JTV jar files and plugins to the jtvOutputDir.
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtvCopyJTVjars= null;
/** Specific list of input files string from "-jtvFiles:f1,f2,...,fn"
* cmd line switch.
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtvSpecificInputFileList= null;
/** Directory where to find the set of input JTV sub directories,
* each with (.atr,.cdt,.gtr) extension files. This is parsed
* with the optional '-jtvInputDir:{jtvInputDir}' with a
* default value of "JTVinput".
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtvInputDir= "JTVinput";
/** Directory where to write the converted JTV output file
* sub directories. This is parsed with the optional
* '-jtvOutputDir:{jtvOutputDir}' with a default value of
* "JTVoutput".
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtvOutputDir= "JTVoutput";
/** 'From' Column number used when remap the 'mAdb ID' data to data
* with this column number in the jtv_mapHdrNamesFile map
* and then in the "Map-Table" during the conversion. Set by
* '-jtvNamesMap:{mAdbArraySummaryFile,mapHdrFile,fromHdrName,toHdrName}'.
* [REFACTOR] to separate JTVconverter program.
*/
public int
jtvUseMapFromColNbr= -1;
/** 'To' Column number used when remap the 'mAdb ID' data to data
* with this column number in the jtv_mapHdrNamesFile map
* and then in the "Map-Table" during the conversion. Set by
* '-jtvNamesMap:{mAdbArraySummaryFile,mapHdrFile,fromHdrName,toHdrName}'.
* [REFACTOR] to separate JTVconverter program.
*/
public int
jtvUseMapToColNbr= -1;
/** Name of the mAdb Array Summary file which contains a Table
* with "mAdb ID" and the corresponding "Array Name" (MAS). Set by
* '-jtvNamesMap:{mAdbArraySummaryFile,mapHdrFile,fromHdrName,toHdrName}'.
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtv_mAdbArraySummaryFile= null;
/** Name of the Long to Short array name mapping file that
* contains a (L2S) Table with the array name in column 1 and one or
* more alternate array names that are shorter and more descriptive. Set by
* '-jtvNamesMap:{mAdbArraySummaryFile,mapHdrFile,fromHdrName,toHdrName}'.
* [REFACTOR] to separate JTVconverter program.
*/
public String
jtv_mapHdrNamesFile= null;
/** Set to rezip the converted files in the output JTV directory
* in a file with the same name. Set by the 'jtvReZipConvertedFiles'
* switch.
* [REFACTOR] to separate JTVconverter program.
*/
public boolean
jtvReZipConvertedFiles= false;
/* @@@@@@@@@@@@@@@@@@@@@@ reinit methods @@@@@@@@@@@@@@@@@@@@@@@@ */
/**
* reinitGlobalSwitches() - reinitialize Global variable switches.
* This is invoked for each batch job before the switches are
* parsed. Note: this must NOT be called before cvt.init() since
* some of the OS variables will not be set.
*/
public void reinitGlobalSwitches()
{ /* reinitGlobalSwitches */
addRowNumbersFlag= false;
addOutfilePostfixName= "";
useHTMLfontSize= "-1";
noBorderFlag= false;
hasTableHeaderRowFlag= true;
hasEmptyLineBeforeTableFlag= false;
ignoreDuplicateFieldsFlag= false;
makeOptionsListFromSemicolonListFlag= false;
altRowBackgroundColor= null;
makePrefaceHTMLflag= false;
nbrTableHdrLines= 1;
startTableAtKeywordLine= null;
useOnlyLastHeaderLineFlag= false;
oldHdrMapColNames= null;
newHdrMapColNames= null;
nHdrMapColNames= 0;
addTableNameFlag= false;
addTableName= null;
mapQuestionmarksFlag= false;
mapQkeywords= null;
mapQtoString= null;
nMapQuestionmarks= 0;
mapDollarsignsFlag= false;
mapDkeywords= null;
mapDtoString= null;
nMapDollarsigns= 0;
exportBigCellsToHTMLfileFlag= false;
bigExportCellThr= EXPORT_BIG_CELL_SIZE;
bigCellFontSize= SHRINK_CELL_SIZE;
shrinkBigCellsFlag= false;
bigShrinkCellThr= SHRINK_BIG_CELL_SIZE;
showDataHeatmapFlipTableFlag= false;
hasStatIndexMapFileFlag= false;
glbMinRowVal= 0.0F;
glbMaxRowVal= 0.0F;
glbMeanRowVal= 0.0F;
glbStdDevRowVal= 0.0F;
colorMapScaleHTML= "";
dataPrecisionHTMLtable= -1;
sortFlipTableByColumnName= null;
concatInputFilesWithSameFieldsFlag= false;
concatOutputTxtFile= null;
concatOutputHtmlFile= null;
ftConcat= null;
makeIndexMapFileFlag= false;
makeMapTblFileName= null;
makeMapColNames= null;
nMakeMapColNames= 0;
ftL2S= null;
mapHdrNamesFlag= false;
mapHdrNamesFile= "mapHdrNames.map";
long2ShortFromColNbr= 1;
long2ShortToColNbr= 2;
fromLongHdrNamesMap= null;
toShortHdrNamesMap= null;
nLong2ShortHdrNamesMap= 0;
extractRowFromResTblAsHTMLflag= false;
extractColName= null;
extractRowNbr= -1;
extractResTblFile= null;
extractHtmlStyle= "DL";
sortRowsByColumnFlag= false;
sortTableColName= null;
sortTableAscendingFlag= null;
nSortTable= 0;
reorderColName= null;
reorderColNbr= null;
nReorderColName= 0;
reorderRemainingColumnsFlag= false;
colHdrNameHmapData= null;
urlBaseLinkHmapData= null;
mapTokenInUrlHmapData= null;
colHdrIdxHmapData= new int[MAX_IN_TOKENS_PER_ROW]; /* Always allocate */
nColUrlHmapData= 0;
flipTableByIndexMapFlag= false;
flipDataFile= null;
flipIndexMapFile= null;
flipColumnFile= null;
maxFlipSeekRowsToExtract= 100;
flipColumnName= null;
nFlipColumns= 0;
flipTableUseExactMatchFlag= true;
flipRowFilterNamesFile= null;
flipRowFilterNames= null;
nFlipRowFilterNames= 0;
flipRowGSPIDfilters= null;
flipOrderHdrColList= null;
nFlipOrderHdrColList= 0;
flipExcludeColumnName= null;
reportFoldChangeFlag= false;
flipAclass= null;
flipBclass= null;
flipFCthreshold= 0.0F;
flipFCthrFlag= false;
nFlipExcludeColumns= 0;
flipSaveOutputFile= null;
dropColNames= null;
nDropColNames= 0;
keepColNames= null;
nKeepColNames= 0;
specificInputFileList= null;
inputFiles= null;
curInputFile= null;
inputNames= null;
outputFiles= null;
nInputFiles= 0;
inputExt= ".txt";
outputExt= ".html";
joinTableFile= null;
limitMaxTableRowsFlag= false;
limitMaxTableRows= 0;
limitRowsSortByColName= null;
limitRowsSortAscendingFlag= true;
inputDataDir= userDir +"data" + fileSep;
outputDataDir= userDir +"html" + fileSep;
tableDataDir= "data.Table" + fileSep;
saveEditTableFlag= false;
saveEditedTable2File= null;
saveEditHTMLflag= false;
makeTXTflag= true;
makeHTMLflag= true;
fastEditFileFlag= false;
makeIndexMapFile= null;
colNameIndexMap= null;
nColNameIndexMap= 0;
makeStatisticsIndexMapFlag= false;
copyFileFlag= false;
nCopyFile= 0;
copySrcFile= null;
copyDstFile= null;
copyTreeDataFlag= false;
nCopyTreeDir= 0;
copyTreeSrcDir= null;
copyTreeDstDir= null;
dirIndexHtmlFlag= false;
nDirIndexHtml= 0;
dirIndexHtml= null;
dirIndexHtmlOverrideFlag= null;
prologFile= userDir+"prolog.html";
epilogueFile= userDir+"epilogue.html";
prolog= null; /* null indicates no file */
epilogue= null; /* null indicates no file */
/* [REFACTOR] reinitialize TestsIntersection Global switches. */
reinitTIglobalSwitches();
/* [REFACTOR] reinitialize JTV Global variable switches. */
reinitJTVglobalSwitches();
} /* reinitGlobalSwitches */
/**
* reinitGBSglobalSwitches() - reinitialize GBS Global variable switches.
* This is invoked for each batch job before the switches are
* parsed. Note: this must NOT be called before cvt.init() since
* some of the OS variables will not be set. It should only be called
* once at top level.
* [REFACTOR] to separate GenBatchScripts program.
*/
public void reinitGBSglobalSwitches()
{ /* reinitGBSglobalSwitches */
genBatchScriptFlag= false;
genBatchDir= null;
genParamsScriptsDir= null;
genInputTreeDir= null;
genSummaryDir= null;
genAnalysesDir= null;
genJTVDir= null;
genMapEGdetails= null;
genMapIntroduction= null;
genSummaryTemplateFlag= false;
genSummaryTemplateFlag= false;
genSummaryTemplateOrderNbrs= null;
genSummaryTemplateNames= null;
nGenSummaryTemplates= 0;
genParamTemplateFlag= false;
genParamTemplateNames= null;
genParamTemplateFiles= null;
nGenParamTemplates= 0;
genSupportFilesToCopy= null;
nGenSupportFilesToCopy= 0;
genTestToDoListFile= null;
genTreeCopyDataFlag= false;
nGenTreeCopy= 0;
genTreeSrcTreeDir= null;
genTreeDstTreeDir= null;
genTestsIntersectionFlag= false;
} /* reinitGBSglobalSwitches */
/**
* reinitTIglobalSwitches() - reinitialize TestsIntersection Global switches.
* This is invoked for each batch job before the switches are
* parsed. Note: this must NOT be called before cvt.init() since
* some of the OS variables will not be set.
* [REFACTOR] to separate TestsIntersection program.
*/
public void reinitTIglobalSwitches()
{ /* reinitTIglobalSwitches */
makeTestsIntersectionTableFlag= false;
testsToDoTblFile= null;
filterTestField= null;
filterTestsList= null;
filterDataField= null;
filterDataList= null;
addFCrangesForTestsIntersectionTableFlag= false;
addRangeOfMeansToTItableFlag= false;
} /* reinitTIglobalSwitches */
/**
* reinitJTVglobalSwitches() - reinitialize JTV Global variable switches.
* This is invoked for each batch job before the switches are
* parsed. Note: this must NOT be called before cvt.init() since
* some of the OS variables will not be set.
* [REFACTOR] to separate JTVconverter program.
*/
public void reinitJTVglobalSwitches()
{ /* reinitJTVglobalSwitches */
jtvMapFlag= false;
jtvHTMLgenerateFlag= false;
jtvDescription= "";
jtvSpecificInputFileList= null;
jtvInputDir= "JTVinput";
jtvOutputDir= "JTVoutput";
jtvUseMapFromColNbr= 1;
jtvUseMapToColNbr= 3;
jtv_mAdbArraySummaryFile= null;
jtv_mapHdrNamesFile= null;
jtvReZipConvertedFiles= false;
} /* reinitJTVglobalSwitches */
} /* end of class Globals */