mondrian.test.loader
Class CsvDBLoader

java.lang.Object
  extended by mondrian.test.loader.DBLoader
      extended by mondrian.test.loader.CsvDBLoader

public class CsvDBLoader
extends DBLoader

Implementation of DBLoader which gets its Tables by reading CSV files using the CsvLoader class and is the loader use for CSV junit tests.

CsvDBLoader requires that the CSV files have a specific format as defined:

 list_of_csv_files : (csv_file)+
 csv_file: table_definitions
 table_definitions: (table_definition)+
 table_definition: actions table_name column_names column_types
          (file_name or nos_of_rows or rows)
 actions: (action)*
 action: '##' (ActionBefore: | ActionAfter:) action_type
 action_type: DropIndex index_name | CreateIndex index_name column_name
 table_name: '##' TableName: table_name
 column_names: '##' ColumnNames: column_name (',' column_name)*
 column_types: '##' ColumnTypes: column_types ('.' column_types)*
 file_name:'##' FileName: relative_filename ?
 nos_of_rows:'##' NosOfRows: number
 column_types: type (':' null)
 type: "INTEGER" "DECIMAL(*,*)" "SMALLINT"
       "VARCHAR(*)" "REAL" "BOOLEAN"
       "BIGINT" "DATE" "TIMESTAMP"
  rows: (row)*
  row: value (',' value)*

  if FileName is given, then
      there is no NosOfRows
      the file can only contains rows
  else if NosOfRows is given, then
      there is no FileName
      the number of rows in current file are rows for table
  else
      the all remaining rows in current file are rows for table
  fi

  comment lines start with '#'

 

See the testsrc/main/mondrian/rolap/aggmatcher/BUG_1541077.csv file for an example.

Author:
Richard M. Emberson

Nested Class Summary
static class CsvDBLoader.CsvLoaderRowStream
           
static class CsvDBLoader.ListRowStream
           
 
Nested classes/interfaces inherited from class mondrian.test.loader.DBLoader
DBLoader.Column, DBLoader.Row, DBLoader.RowDefault, DBLoader.RowStream, DBLoader.Table, DBLoader.Type
 
Field Summary
static String ACTION_AFTER_TAG
           
static String ACTION_BEFORE_TAG
           
static String COLUMN_NAMES_TAG
           
static String COLUMN_TYPES_TAG
           
static String CREATE_INDEX_TAG
           
static String DROP_INDEX_TAG
           
static String FILE_NAME_TAG
           
static String NOS_OF_ROWS_TAG
           
static String TABLE_NAME_TAG
           
 
Fields inherited from class mondrian.test.loader.DBLoader
BATCH_SIZE_PROP, CREATE_TABLE_INDEX_PROP, CREATE_TABLE_INDEX_SUFFIX_DEFAULT, CREATE_TABLE_PROP, CREATE_TABLE_SUFFIX_DEFAULT, dateFormatString, dateFormatter, decimalDataTypeRegex, DROP_TABLE_INDEX_PROP, DROP_TABLE_INDEX_SUFFIX_DEFAULT, DROP_TABLE_PROP, DROP_TABLE_ROWS_PROP, DROP_TABLE_ROWS_SUFFIX_DEFAULT, DROP_TABLE_SUFFIX_DEFAULT, EMPTY_ROW_STREAM, FORCE_PROP, integerFormatter, JDBC_DRIVER_PROP, JDBC_PASSWORD_PROP, JDBC_URL_PROP, JDBC_USER_PROP, LOAD_TABLE_ROWS_PROP, LOAD_TABLE_ROWS_SUFFIX_DEFAULT, LOGGER, nl, oracleDateFormatString, OUTPUT_DIRECTORY_PROP, varcharDataTypeRegex
 
Constructor Summary
CsvDBLoader()
           
 
Method Summary
protected  void check()
           
protected static File checkDirectory(String dirName)
           
 File getInputDirectory()
           
 String getInputDirectoryRegex()
           
 File getInputFile()
           
 File[] getInputFiles()
           
 DBLoader.Table[] getTables()
           
 DBLoader.Table[] getTables(File[] files)
           
 DBLoader.Table[] getTables(Reader reader)
           
 DBLoader.Table[] getTablesFromDirectory()
           
 DBLoader.Table[] getTablesFromFile()
           
 DBLoader.Table[] getTablesFromFiles()
           
protected  DBLoader.Column[] loadColumns(String[] columnNames, String[] columnTypes, int lineNos)
           
 void loadTables(File file, List<DBLoader.Table> tableList)
           
 void loadTables(Reader reader, List<DBLoader.Table> tableList)
           
static void main(String[] args)
           
 void setInputDirectory(File inputDirectory)
           
 void setInputDirectoryRegex(String inputDirectoryRegex)
           
 void setInputFile(File inputFile)
           
 void setInputFiles(File[] inputFiles)
           
protected static void usage(String msg)
           
 
Methods inherited from class mondrian.test.loader.DBLoader
clear, close, closeFileWriter, columnValue, createInsertStatement, decimalFormat, decimalFormat, dropTable, dropTables, embedQuotes, executeAfterActions, executeBeforeActions, executeCreateTable, executeDDL, executeDropTable, executeDropTableRows, executeLoadTableRows, executeStatements, executeStatements, generateAfterActions, generateBeforeActions, generateCreateTable, generateDropTable, generateDropTableRows, generateStatements, generateStatements, getBatchSize, getConnection, getForce, getJdbcDriver, getJdbcURL, getOutputDirectory, getPassword, getUserName, initialize, initializeColumns, makeFileWriter, quoteId, setBatchSize, setConnection, setForce, setJdbcDriver, setJdbcURL, setOutputDirectory, setPassword, setUserName, writeBatch, writeDDL
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

ACTION_BEFORE_TAG

public static final String ACTION_BEFORE_TAG
See Also:
Constant Field Values

ACTION_AFTER_TAG

public static final String ACTION_AFTER_TAG
See Also:
Constant Field Values

DROP_INDEX_TAG

public static final String DROP_INDEX_TAG
See Also:
Constant Field Values

CREATE_INDEX_TAG

public static final String CREATE_INDEX_TAG
See Also:
Constant Field Values

TABLE_NAME_TAG

public static final String TABLE_NAME_TAG
See Also:
Constant Field Values

COLUMN_NAMES_TAG

public static final String COLUMN_NAMES_TAG
See Also:
Constant Field Values

COLUMN_TYPES_TAG

public static final String COLUMN_TYPES_TAG
See Also:
Constant Field Values

FILE_NAME_TAG

public static final String FILE_NAME_TAG
See Also:
Constant Field Values

NOS_OF_ROWS_TAG

public static final String NOS_OF_ROWS_TAG
See Also:
Constant Field Values
Constructor Detail

CsvDBLoader

public CsvDBLoader()
Method Detail

setInputDirectory

public void setInputDirectory(File inputDirectory)

getInputDirectory

public File getInputDirectory()

setInputDirectoryRegex

public void setInputDirectoryRegex(String inputDirectoryRegex)

getInputDirectoryRegex

public String getInputDirectoryRegex()

setInputFiles

public void setInputFiles(File[] inputFiles)

getInputFiles

public File[] getInputFiles()

setInputFile

public void setInputFile(File inputFile)

getInputFile

public File getInputFile()

getTables

public DBLoader.Table[] getTables()
                           throws Exception
Specified by:
getTables in class DBLoader
Throws:
Exception

getTablesFromDirectory

public DBLoader.Table[] getTablesFromDirectory()
                                        throws Exception
Throws:
Exception

getTablesFromFiles

public DBLoader.Table[] getTablesFromFiles()
                                    throws Exception
Throws:
Exception

getTablesFromFile

public DBLoader.Table[] getTablesFromFile()
                                   throws Exception
Throws:
Exception

getTables

public DBLoader.Table[] getTables(File[] files)
                           throws Exception
Throws:
Exception

getTables

public DBLoader.Table[] getTables(Reader reader)
                           throws Exception
Throws:
Exception

loadTables

public void loadTables(File file,
                       List<DBLoader.Table> tableList)
                throws Exception
Throws:
Exception

loadTables

public void loadTables(Reader reader,
                       List<DBLoader.Table> tableList)
                throws Exception
Throws:
Exception

loadColumns

protected DBLoader.Column[] loadColumns(String[] columnNames,
                                        String[] columnTypes,
                                        int lineNos)
                                 throws Exception
Throws:
Exception

check

protected void check()
              throws Exception
Overrides:
check in class DBLoader
Throws:
Exception

checkDirectory

protected static File checkDirectory(String dirName)
                              throws Exception
Throws:
Exception

usage

protected static void usage(String msg)

main

public static void main(String[] args)
                 throws Exception
Throws:
Exception

Get Mondrian at SourceForge.net. Fast, secure and free Open Source software downloads