org.apache.torque.engine.database.transform
Class SQLToAppData

java.lang.Object
  extended byorg.apache.torque.engine.database.transform.SQLToAppData

public class SQLToAppData
extends java.lang.Object

A Class that converts an sql input file to an AppData structure. The class makes use of SQL Scanner to get sql tokens and the parses these to create the AppData class. SQLToAppData is in effect a simplified sql parser.

Version:
$Id: SQLToAppData.java,v 1.2 2003/02/18 08:05:50 mpoeschl Exp $
Author:
Leon Messerschmidt, Jon S. Stevens

Field Summary
private  AppData appData
           
private  Database appDataDB
           
private  java.lang.String basePropsFilePath
           
private  int count
           
private  java.lang.String databaseType
           
private  java.lang.String sqlFile
           
private  Token token
           
private  java.util.List tokens
           
 
Constructor Summary
SQLToAppData(java.lang.String sqlFile)
          Create a new class with an input Reader
SQLToAppData(java.lang.String sqlFile, java.lang.String databaseType, java.lang.String basePropsFilePath)
          Create a new class with an input Reader.
 
Method Summary
private  void create_Table_Column_Data(Table tbl)
          Parse the data definition of the column statement.
private  void create_Table_Column_Foreign(Table tbl)
          Parses FOREIGN KEY (BAR) REFERENCES TABLE (BAR) statement
private  void create_Table_Column_Primary(Table tbl)
          Parses PRIMARY KEY (FOO,BAR) statement
private  void create_Table_Column_Unique(Table tbl)
          Parses UNIQUE (NAME,FOO,BAR) statement
private  void create_Table_Column(Table tbl)
          Parses column information between the braces of a CREATE TABLE () sql statement.
private  void create_Table()
          Parses a CREATE TABLE sql command
private  void create()
          Parses a CREATE TABLE FOO command.
private  void err(java.lang.String name)
          Creates an error condition and adds the line and column number of the current token to the error message.
 AppData execute()
          Execute the parser.
 java.lang.String getSqlFile()
          Get the current input sql file
private  boolean hasTokens()
          Check if there is more tokens available for parsing.
static void main(java.lang.String[] args)
          Just 4 testing.
private  void next()
          Move to the next token.
 void setSqlFile(java.lang.String sqlFile)
          Set the current input sql file
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

sqlFile

private java.lang.String sqlFile

tokens

private java.util.List tokens

token

private Token token

appData

private AppData appData

appDataDB

private Database appDataDB

count

private int count

databaseType

private java.lang.String databaseType

basePropsFilePath

private java.lang.String basePropsFilePath
Constructor Detail

SQLToAppData

public SQLToAppData(java.lang.String sqlFile)
Create a new class with an input Reader

Parameters:
sqlFile - the sql file

SQLToAppData

public SQLToAppData(java.lang.String sqlFile,
                    java.lang.String databaseType,
                    java.lang.String basePropsFilePath)
Create a new class with an input Reader. This ctor is not used but putting here in the event db.props properties are found to be useful converting sql to xml, the infrastructure will exist

Parameters:
sqlFile - the sql file
databaseType -
basePropsFilePath -
Method Detail

getSqlFile

public java.lang.String getSqlFile()
Get the current input sql file

Returns:
the sql file

setSqlFile

public void setSqlFile(java.lang.String sqlFile)
Set the current input sql file

Parameters:
sqlFile - the sql file

next

private void next()
           throws ParseException
Move to the next token. Throws an exception if there is no more tokens available.

Throws:
ParseException

err

private void err(java.lang.String name)
          throws ParseException
Creates an error condition and adds the line and column number of the current token to the error message.

Parameters:
name - name of the error
Throws:
ParseException

hasTokens

private boolean hasTokens()
Check if there is more tokens available for parsing.

Returns:
true if there are more tokens available

create

private void create()
             throws ParseException
Parses a CREATE TABLE FOO command.

Throws:
ParseException

create_Table

private void create_Table()
                   throws ParseException
Parses a CREATE TABLE sql command

Throws:
ParseException - error parsing the input file

create_Table_Column

private void create_Table_Column(Table tbl)
                          throws ParseException
Parses column information between the braces of a CREATE TABLE () sql statement.

Throws:
ParseException - error parsing the input file

create_Table_Column_Primary

private void create_Table_Column_Primary(Table tbl)
                                  throws ParseException
Parses PRIMARY KEY (FOO,BAR) statement

Throws:
ParseException - error parsing the input file

create_Table_Column_Unique

private void create_Table_Column_Unique(Table tbl)
                                 throws ParseException
Parses UNIQUE (NAME,FOO,BAR) statement

Throws:
ParseException - error parsing the input file

create_Table_Column_Foreign

private void create_Table_Column_Foreign(Table tbl)
                                  throws ParseException
Parses FOREIGN KEY (BAR) REFERENCES TABLE (BAR) statement

Throws:
ParseException - error parsing the input file

create_Table_Column_Data

private void create_Table_Column_Data(Table tbl)
                               throws ParseException
Parse the data definition of the column statement.

Throws:
ParseException - error parsing the input file

execute

public AppData execute()
                throws java.io.IOException,
                       ParseException
Execute the parser.

Throws:
java.io.IOException - If an I/O error occurs
ParseException - error parsing the input file

main

public static void main(java.lang.String[] args)
                 throws java.lang.Exception
Just 4 testing.

Parameters:
args - commandline args
Throws:
java.lang.Exception - an exception


Copyright © 2000-2003 Apache Software Foundation. All Rights Reserved.