org.apache.derby.impl.tools.ij
Class utilMain

java.lang.Object
  extended by org.apache.derby.impl.tools.ij.utilMain
All Implemented Interfaces:
java.security.PrivilegedAction

public class utilMain
extends java.lang.Object
implements java.security.PrivilegedAction

This class is utilities specific to the two ij Main's. This factoring enables sharing the functionality for single and dual connection ij runs.


Field Summary
static int BUFFEREDFILESIZE
           
(package private)  UCode_CharStream charStream
           
private  StatementFinder[] commandGrabber
           
(package private)  ConnectionEnv[] connEnv
           
private  int currCE
           
private  boolean fileInput
           
private  boolean firstRun
           
private  java.util.Hashtable ignoreErrors
           
private  java.lang.String ijExceptionTrace
          Value of the system property ij.execptionTrace
(package private)  ij ijParser
           
(package private)  ijTokenManager ijTokMgr
           
private  boolean initialFileInput
           
(package private)  LocalizedResource langUtil
           
private  boolean mtUse
           
private  int numConnections
           
(package private)  java.util.Stack oldGrabbers
           
private  LocalizedOutput out
           
private  boolean showErrorCode
          True if to display the error code when displaying a SQLException.
 
Constructor Summary
utilMain(int numConnections, LocalizedOutput out)
          Set up the test to run with 'numConnections' connections/users.
utilMain(int numConnections, LocalizedOutput out, boolean loadSystemProperties)
          Set up the test to run with 'numConnections' connections/users.
utilMain(int numConnections, LocalizedOutput out, java.util.Hashtable ignoreErrors)
          Set up the test to run with 'numConnections' connections/users.
 
Method Summary
(package private)  ijResult absolute(java.sql.ResultSet rs, int row)
          Position on the specified row of the specified ResultSet.
(package private)  ijResult afterLast(java.sql.ResultSet rs)
          Position after the last row of the specified ResultSet and return NULL to the user.
(package private)  ijResult beforeFirst(java.sql.ResultSet rs)
          Position before the first row of the specified ResultSet and return NULL to the user.
private  void checkScrollableCursor(java.sql.ResultSet rs, java.lang.String operation)
          Check that the cursor is scrollable.
private  void cleanupGo(LocalizedInput[] in)
          Perform cleanup after a script has been run.
private  void displayResult(LocalizedOutput out, ijResult result, java.sql.Connection conn)
           
private  boolean doCatch(java.lang.String command)
          catch processing on failed commands.
(package private) static void doPrompt(boolean newStatement, LocalizedOutput out, java.lang.String tag)
          REMIND: eventually this might be part of StatementFinder, used at each carriage return to show that it is still "live" when it is reading multi-line input.
private  void doTrace(java.lang.Throwable t)
          stack trace dumper
(package private)  ijResult first(java.sql.ResultSet rs)
          Position on the first row of the specified ResultSet and return that row to the user.
(package private)  int getCurrentRowNumber(java.sql.ResultSet rs)
          Get the current row number
 void go(LocalizedInput[] in, LocalizedOutput out)
          run ij over the specified input, sending output to the specified output.
 int goScript(java.sql.Connection conn, LocalizedInput in)
          Support to run a script.
private  void handleSQLException(LocalizedOutput out, java.sql.SQLException e)
          This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field.
 void initFromEnvironment()
          Initialize the connections from the environment.
(package private)  ijResult last(java.sql.ResultSet rs)
          Position on the last row of the specified ResultSet and return that row to the user.
(package private)  void newInput(java.lang.String fileName)
           
(package private)  void newResourceInput(java.lang.String resourceName)
           
(package private)  ijResult previous(java.sql.ResultSet rs)
          Position on the previous row of the specified ResultSet and return that row to the user.
(package private)  ijResult relative(java.sql.ResultSet rs, int row)
          Move the cursor position by the specified amount.
 java.lang.Object run()
           
private  int runScriptGuts()
          Run the guts of the script.
(package private)  void setMtUse(boolean b)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

commandGrabber

private StatementFinder[] commandGrabber

charStream

UCode_CharStream charStream

ijTokMgr

ijTokenManager ijTokMgr

ijParser

ij ijParser

connEnv

ConnectionEnv[] connEnv

currCE

private int currCE

numConnections

private final int numConnections

fileInput

private boolean fileInput

initialFileInput

private boolean initialFileInput

mtUse

private boolean mtUse

firstRun

private boolean firstRun

out

private LocalizedOutput out

ignoreErrors

private java.util.Hashtable ignoreErrors

showErrorCode

private final boolean showErrorCode
True if to display the error code when displaying a SQLException.


ijExceptionTrace

private final java.lang.String ijExceptionTrace
Value of the system property ij.execptionTrace


BUFFEREDFILESIZE

public static final int BUFFEREDFILESIZE
See Also:
Constant Field Values

oldGrabbers

java.util.Stack oldGrabbers

langUtil

LocalizedResource langUtil
Constructor Detail

utilMain

utilMain(int numConnections,
         LocalizedOutput out)
   throws ijFatalException
Set up the test to run with 'numConnections' connections/users.

Parameters:
numConnections - The number of connections/users to test.
Throws:
ijFatalException

utilMain

utilMain(int numConnections,
         LocalizedOutput out,
         boolean loadSystemProperties)
   throws ijFatalException
Set up the test to run with 'numConnections' connections/users. This overload allows the choice of whether the system properties will be used or not.

Parameters:
numConnections - The number of connections/users to test.
Throws:
ijFatalException

utilMain

public utilMain(int numConnections,
                LocalizedOutput out,
                java.util.Hashtable ignoreErrors)
         throws ijFatalException
Set up the test to run with 'numConnections' connections/users.

Parameters:
numConnections - The number of connections/users to test.
ignoreErrors - A list of errors to ignore. If null, all errors are printed out and nothing is fatal. If non-null, if an error is hit and it is in this list, it is silently ignore. Otherwise, an ijFatalException is thrown. ignoreErrors is used for stress tests.
Throws:
ijFatalException
Method Detail

initFromEnvironment

public void initFromEnvironment()
Initialize the connections from the environment.


go

public void go(LocalizedInput[] in,
               LocalizedOutput out)
        throws ijFatalException
run ij over the specified input, sending output to the specified output. Any prior input and output will be lost.

Parameters:
in - source for input to ij
out - sink for output from ij
Throws:
ijFatalException

goScript

public int goScript(java.sql.Connection conn,
                    LocalizedInput in)
Support to run a script. Performs minimal setup to set the passed in connection into the existing ij setup, ConnectionEnv.

Parameters:
conn -
in -

runScriptGuts

private int runScriptGuts()
Run the guts of the script. Split out to allow calling from the full ij and the minimal goScript.

Returns:
The number of errors seen in the script.

cleanupGo

private void cleanupGo(LocalizedInput[] in)
Perform cleanup after a script has been run. Close the input streams if required and shutdown derby on an exit.

Parameters:
in -

displayResult

private void displayResult(LocalizedOutput out,
                           ijResult result,
                           java.sql.Connection conn)
                    throws java.sql.SQLException
Throws:
java.sql.SQLException

doCatch

private boolean doCatch(java.lang.String command)
catch processing on failed commands. This really ought to be in ij somehow, but it was easier to catch in Main.


handleSQLException

private void handleSQLException(LocalizedOutput out,
                                java.sql.SQLException e)
                         throws ijFatalException
This routine displays SQL exceptions and decides whether they are fatal or not, based on the ignoreErrors field. If they are fatal, an ijFatalException is thrown. Lifted from ij/util.java:ShowSQLException

Throws:
ijFatalException

doTrace

private void doTrace(java.lang.Throwable t)
stack trace dumper


newInput

void newInput(java.lang.String fileName)

newResourceInput

void newResourceInput(java.lang.String resourceName)

doPrompt

static void doPrompt(boolean newStatement,
                     LocalizedOutput out,
                     java.lang.String tag)
REMIND: eventually this might be part of StatementFinder, used at each carriage return to show that it is still "live" when it is reading multi-line input.


setMtUse

void setMtUse(boolean b)

checkScrollableCursor

private void checkScrollableCursor(java.sql.ResultSet rs,
                                   java.lang.String operation)
                            throws ijException,
                                   java.sql.SQLException
Check that the cursor is scrollable.

Parameters:
rs - the ResultSet to check
operation - which operation this is checked for
Throws:
ijException - if the cursor isn't scrollable
java.sql.SQLException - if a database error occurs

absolute

ijResult absolute(java.sql.ResultSet rs,
                  int row)
            throws java.sql.SQLException
Position on the specified row of the specified ResultSet.

Parameters:
rs - The specified ResultSet.
row - The row # to move to. (Negative means from the end of the result set.)
Returns:
NULL.
Throws:
java.sql.SQLException - thrown on error. (absolute() not supported pre-JDBC2.0)

relative

ijResult relative(java.sql.ResultSet rs,
                  int row)
            throws java.sql.SQLException
Move the cursor position by the specified amount.

Parameters:
rs - The specified ResultSet.
row - The # of rows to move. (Negative means toward the beginning of the result set.)
Returns:
NULL.
Throws:
java.sql.SQLException - thrown on error. (relative() not supported pre-JDBC2.0)

beforeFirst

ijResult beforeFirst(java.sql.ResultSet rs)
               throws java.sql.SQLException
Position before the first row of the specified ResultSet and return NULL to the user.

Parameters:
rs - The specified ResultSet.
Returns:
NULL.
Throws:
java.sql.SQLException - thrown on error. (beforeFirst() not supported pre-JDBC2.0)

first

ijResult first(java.sql.ResultSet rs)
         throws java.sql.SQLException
Position on the first row of the specified ResultSet and return that row to the user.

Parameters:
rs - The specified ResultSet.
Returns:
The first row of the ResultSet.
Throws:
java.sql.SQLException - thrown on error. (first() not supported pre-JDBC2.0)

afterLast

ijResult afterLast(java.sql.ResultSet rs)
             throws java.sql.SQLException
Position after the last row of the specified ResultSet and return NULL to the user.

Parameters:
rs - The specified ResultSet.
Returns:
NULL.
Throws:
java.sql.SQLException - thrown on error. (afterLast() not supported pre-JDBC2.0)

last

ijResult last(java.sql.ResultSet rs)
        throws java.sql.SQLException
Position on the last row of the specified ResultSet and return that row to the user.

Parameters:
rs - The specified ResultSet.
Returns:
The last row of the ResultSet.
Throws:
java.sql.SQLException - thrown on error. (last() not supported pre-JDBC2.0)

previous

ijResult previous(java.sql.ResultSet rs)
            throws java.sql.SQLException
Position on the previous row of the specified ResultSet and return that row to the user.

Parameters:
rs - The specified ResultSet.
Returns:
The previous row of the ResultSet.
Throws:
java.sql.SQLException - thrown on error. (previous() not supported pre-JDBC2.0)

getCurrentRowNumber

int getCurrentRowNumber(java.sql.ResultSet rs)
                  throws java.sql.SQLException
Get the current row number

Parameters:
rs - The specified ResultSet.
Returns:
The current row number
Throws:
java.sql.SQLException - thrown on error. (getRow() not supported pre-JDBC2.0)

run

public final java.lang.Object run()
Specified by:
run in interface java.security.PrivilegedAction

Built on Thu 2011-03-10 11:54:14+0000, from revision ???

Apache Derby V10.6 Internals - Copyright © 2004,2007 The Apache Software Foundation. All Rights Reserved.