org.h2.message

## Class TraceObject

- java.lang.Object
- - org.h2.message.TraceObject

Direct Known Subclasses:
  JdbcArray, JdbcBlob, JdbcClob, JdbcConnection, JdbcDatabaseMetaData, JdbcDataSource, JdbcParameterMetaData, JdbcResultSet, JdbcResultSetMetaData, JdbcSavepoint, JdbcStatement, JdbcXAConnection, JdbcXid

    public class TraceObject
    extends java.lang.Object

The base class for objects that can print trace information about themselves.

### Field Summary

Fields
`protected static int` `ARRAY` The trace type id for array objects.
`protected static int` `BLOB` The trace type id for blobs.
`protected static int` `CALLABLE_STATEMENT` The trace type id for callable statements.
`protected static int` `CLOB` The trace type id for clobs.
`protected static int` `CONNECTION` The trace type id for connections.
`protected static int` `DATA_SOURCE` The trace type id for data sources.
`protected static int` `DATABASE_META_DATA` The trace type id for database meta data objects.
`protected static int` `PARAMETER_META_DATA` The trace type id for parameter meta data objects.
`protected static int` `PREPARED_STATEMENT` The trace type id for prepared statements.
`protected static int` `RESULT_SET` The trace type id for result sets.
`protected static int` `RESULT_SET_META_DATA` The trace type id for result set meta data objects.
`protected static int` `SAVEPOINT` The trace type id for savepoint objects.
`protected static int` `STATEMENT` The trace type id for statements.
`protected Trace` `trace` The trace module used by this object.
`protected static int` `XA_DATA_SOURCE` The trace type id for XA data sources.
`protected static int` `XID` The trace type id for transaction ids.

### Constructor Summary

Constructors
Constructor and Description
`TraceObject()`

### Method Summary

Methods
`protected void` `debugCode(java.lang.String text)` Write trace information in the form objectName.text.
`protected void` `debugCodeAssign(java.lang.String className, int newType, int newId, java.lang.String value)` Write trace information as an assignment in the form className prefixId = objectName.value.
`protected void` `debugCodeCall(java.lang.String methodName)` Write trace information as a method call in the form objectName.methodName().
`protected void` `debugCodeCall(java.lang.String methodName, long param)` Write trace information as a method call in the form objectName.methodName(param) where the parameter is formatted as a long value.
`protected void` `debugCodeCall(java.lang.String methodName, java.lang.String param)` Write trace information as a method call in the form objectName.methodName(param) where the parameter is formatted as a Java string.
`protected static int` `getNextId(int type)` Get the next trace object id for this object type.
`int` `getTraceId()` INTERNAL
`java.lang.String` `getTraceObjectName()` INTERNAL
`protected boolean` `isDebugEnabled()` Check if the debug trace level is enabled.
`protected boolean` `isInfoEnabled()` Check if info trace level is enabled.
`protected java.sql.SQLException` `logAndConvert(java.lang.Throwable ex)` Log an exception and convert it to a SQL exception if required.
`protected static java.lang.String` `quote(java.lang.String s)` Format a string as a Java string literal.
`protected static java.lang.String` `quoteArray(java.lang.String[] s)` Format a string array to the Java source code that represents this object.
`protected static java.lang.String` `quoteBigDecimal(java.math.BigDecimal x)` Format a big decimal to the Java source code that represents this object.
`protected static java.lang.String` `quoteBytes(byte[] x)` Format a byte array to the Java source code that represents this object.
`protected static java.lang.String` `quoteDate(java.sql.Date x)` Format a date to the Java source code that represents this object.
`protected static java.lang.String` `quoteIntArray(int[] s)` Format an int array to the Java source code that represents this object.
`protected static java.lang.String` `quoteMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)` Format a map to the Java source code that represents this object.
`protected static java.lang.String` `quoteTime(java.sql.Time x)` Format a time to the Java source code that represents this object.
`protected static java.lang.String` `quoteTimestamp(java.sql.Timestamp x)` Format a timestamp to the Java source code that represents this object.
`protected void` `setTrace(Trace trace, int type, int id)` Set the options to use when writing trace message.
`protected java.sql.SQLException` `unsupported(java.lang.String message)` Get a SQL exception meaning this feature is not supported.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### CALLABLE_STATEMENT

    protected static final int CALLABLE_STATEMENT

The trace type id for callable statements.

See Also:
  Constant Field Values

#### CONNECTION

    protected static final int CONNECTION

The trace type id for connections.

See Also:
  Constant Field Values

#### DATABASE_META_DATA

    protected static final int DATABASE_META_DATA

The trace type id for database meta data objects.

See Also:
  Constant Field Values

#### PREPARED_STATEMENT

    protected static final int PREPARED_STATEMENT

The trace type id for prepared statements.

See Also:
  Constant Field Values

#### RESULT_SET

    protected static final int RESULT_SET

The trace type id for result sets.

See Also:
  Constant Field Values

#### RESULT_SET_META_DATA

    protected static final int RESULT_SET_META_DATA

The trace type id for result set meta data objects.

See Also:
  Constant Field Values

#### SAVEPOINT

    protected static final int SAVEPOINT

The trace type id for savepoint objects.

See Also:
  Constant Field Values

#### STATEMENT

    protected static final int STATEMENT

The trace type id for statements.

See Also:
  Constant Field Values

#### BLOB

    protected static final int BLOB

The trace type id for blobs.

See Also:
  Constant Field Values

#### CLOB

    protected static final int CLOB

The trace type id for clobs.

See Also:
  Constant Field Values

#### PARAMETER_META_DATA

    protected static final int PARAMETER_META_DATA

The trace type id for parameter meta data objects.

See Also:
  Constant Field Values

#### DATA_SOURCE

    protected static final int DATA_SOURCE

The trace type id for data sources.

See Also:
  Constant Field Values

#### XA_DATA_SOURCE

    protected static final int XA_DATA_SOURCE

The trace type id for XA data sources.

See Also:
  Constant Field Values

#### XID

    protected static final int XID

The trace type id for transaction ids.

See Also:
  Constant Field Values

#### ARRAY

    protected static final int ARRAY

The trace type id for array objects.

See Also:
  Constant Field Values

#### trace

    protected Trace trace

The trace module used by this object.

### Constructor Detail

#### TraceObject

    public TraceObject()

### Method Detail

#### setTrace

    protected void setTrace(Trace trace,
                int type,
                int id)

Set the options to use when writing trace message.

Parameters:
  `trace` - the trace object
  `type` - the trace object type
  `id` - the trace object id

#### getTraceId

    public int getTraceId()

INTERNAL

#### getTraceObjectName

    public java.lang.String getTraceObjectName()

INTERNAL

#### getNextId

    protected static int getNextId(int type)

Get the next trace object id for this object type.

Parameters:
  `type` - the object type
Returns:
  the new trace object id

#### isDebugEnabled

    protected boolean isDebugEnabled()

Check if the debug trace level is enabled.

Returns:
  true if it is

#### isInfoEnabled

    protected boolean isInfoEnabled()

Check if info trace level is enabled.

Returns:
  true if it is

#### debugCodeAssign

    protected void debugCodeAssign(java.lang.String className,
                       int newType,
                       int newId,
                       java.lang.String value)

Write trace information as an assignment in the form className prefixId = objectName.value.

Parameters:
  `className` - the class name of the result
  `newType` - the prefix type
  `newId` - the trace object id of the created object
  `value` - the value to assign this new object to

#### debugCodeCall

    protected void debugCodeCall(java.lang.String methodName)

Write trace information as a method call in the form objectName.methodName().

Parameters:
  `methodName` - the method name

#### debugCodeCall

    protected void debugCodeCall(java.lang.String methodName,
                     long param)

Write trace information as a method call in the form objectName.methodName(param) where the parameter is formatted as a long value.

Parameters:
  `methodName` - the method name
  `param` - one single long parameter

#### debugCodeCall

    protected void debugCodeCall(java.lang.String methodName,
                     java.lang.String param)

Write trace information as a method call in the form objectName.methodName(param) where the parameter is formatted as a Java string.

Parameters:
  `methodName` - the method name
  `param` - one single string parameter

#### debugCode

    protected void debugCode(java.lang.String text)

Write trace information in the form objectName.text.

Parameters:
  `text` - the trace text

#### quote

    protected static java.lang.String quote(java.lang.String s)

Format a string as a Java string literal.

Parameters:
  `s` - the string to convert
Returns:
  the Java string literal

#### quoteTime

    protected static java.lang.String quoteTime(java.sql.Time x)

Format a time to the Java source code that represents this object.

Parameters:
  `x` - the time to convert
Returns:
  the Java source code

#### quoteTimestamp

    protected static java.lang.String quoteTimestamp(java.sql.Timestamp x)

Format a timestamp to the Java source code that represents this object.

Parameters:
  `x` - the timestamp to convert
Returns:
  the Java source code

#### quoteDate

    protected static java.lang.String quoteDate(java.sql.Date x)

Format a date to the Java source code that represents this object.

Parameters:
  `x` - the date to convert
Returns:
  the Java source code

#### quoteBigDecimal

    protected static java.lang.String quoteBigDecimal(java.math.BigDecimal x)

Format a big decimal to the Java source code that represents this object.

Parameters:
  `x` - the big decimal to convert
Returns:
  the Java source code

#### quoteBytes

    protected static java.lang.String quoteBytes(byte[] x)

Format a byte array to the Java source code that represents this object.

Parameters:
  `x` - the byte array to convert
Returns:
  the Java source code

#### quoteArray

    protected static java.lang.String quoteArray(java.lang.String[] s)

Format a string array to the Java source code that represents this object.

Parameters:
  `s` - the string array to convert
Returns:
  the Java source code

#### quoteIntArray

    protected static java.lang.String quoteIntArray(int[] s)

Format an int array to the Java source code that represents this object.

Parameters:
  `s` - the int array to convert
Returns:
  the Java source code

#### quoteMap

    protected static java.lang.String quoteMap(java.util.Map<java.lang.String,java.lang.Class<?>> map)

Format a map to the Java source code that represents this object.

Parameters:
  `map` - the map to convert
Returns:
  the Java source code

#### logAndConvert

    protected java.sql.SQLException logAndConvert(java.lang.Throwable ex)

Log an exception and convert it to a SQL exception if required.

Parameters:
  `ex` - the exception
Returns:
  the SQL exception object

#### unsupported

    protected java.sql.SQLException unsupported(java.lang.String message)

Get a SQL exception meaning this feature is not supported.

Parameters:
  `message` - the message
Returns:
  the SQL exception