oracle.jbo.server.util
Class Canonizer
java.lang.Object
|
+--oracle.jbo.server.util.Canonizer
- public class Canonizer
- extends java.lang.Object
This class provides functions to help test harnesses
coerce Strings into various canonical forms.
Method Summary |
static void |
addClassNameTransform(java.lang.String canonicalClassName,
java.lang.String[][] productClassNames)
|
static void |
addMessageTransform(int id,
java.lang.String canonicalMessage,
java.lang.String[][] productMessages)
adds a message transformation to the list,
messages which are not for the SQLBuilder currently
in force are ignored
so the caller can write:
aMT("drop table error", new String[][] {
{SQLBuilder.OLITE, "POL-123 dropped table", "drop table error"},
{SQLBuilder.ORACLE, "ORA-456 droop the tibble", "drop table error"}
}); |
static void |
addStandardCanonizers()
|
static java.lang.String |
canonizeExceptionClassName(java.lang.Exception ex)
|
static java.lang.String |
canonizeMessage(java.lang.String productMessage,
boolean doMassage)
this method searches through the list of registered
messages, and transforms the message if a match is found. |
static java.lang.String |
canonizeString(java.lang.Object data)
An attempt to insulate the Kava test from the format vagaries of
different JDBC drivers. |
static int |
getDateFormat()
|
static java.lang.String |
massageExceptionMsg(java.lang.String s)
as the name suggests, removes random irregularities
from exception messages - different versions of JDBC drivers
have slightly different line terminating strategies...sigh
Tnis converts all line separators to \r\n
and always returms \r\n at the end of a message
TODO: retval should be a StringBuffer for efficiency |
static void |
removeClassNameTransforms()
|
static void |
removeMessageTransforms()
|
static void |
setDateFormat(int format)
|
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
CANONIZED
public static final java.lang.String CANONIZED
JDBC_TIMESTAMP
public static final int JDBC_TIMESTAMP
ORACLE_DDMONYY
public static final int ORACLE_DDMONYY
setDateFormat
public static void setDateFormat(int format)
getDateFormat
public static int getDateFormat()
addMessageTransform
public static void addMessageTransform(int id,
java.lang.String canonicalMessage,
java.lang.String[][] productMessages)
- adds a message transformation to the list,
messages which are not for the SQLBuilder currently
in force are ignored
so the caller can write:
aMT("drop table error", new String[][] {
{SQLBuilder.OLITE, "POL-123 dropped table", "drop table error"},
{SQLBuilder.ORACLE, "ORA-456 droop the tibble", "drop table error"}
});
addClassNameTransform
public static void addClassNameTransform(java.lang.String canonicalClassName,
java.lang.String[][] productClassNames)
removeMessageTransforms
public static void removeMessageTransforms()
removeClassNameTransforms
public static void removeClassNameTransforms()
canonizeMessage
public static java.lang.String canonizeMessage(java.lang.String productMessage,
boolean doMassage)
- this method searches through the list of registered
messages, and transforms the message if a match is found.
eg: The message passed in is
"JBO-423 Bad Thing in expression: wombat billy
and there is a registered transform
"JBO-423 Bad Thing" --> "$CANON-423 Bad Thing"
we get "$CANON-423 Bad Thing in expression wombat billy
canonizeExceptionClassName
public static java.lang.String canonizeExceptionClassName(java.lang.Exception ex)
canonizeString
public static java.lang.String canonizeString(java.lang.Object data)
- An attempt to insulate the Kava test from the format vagaries of
different JDBC drivers.
For example: if you perform a getObject on a database column
that is of type NUMBER(7,2), then the Olite JDBC driver
returns a BigDecimal with a scale of 2 - reasonable.
Sadly, the 816 JDBC driver has the controversial behaviou
that it returns a BigDecimal with scale that id **Data Dependent*!
So if the value is 800.00 you get a scale of zero, and if
value is 3.14 you get a scale of 2.
So, this function is a collection of ad-hoc rules which
canonizes the string form of a data attribute to minimize the change
in output scripts.
massageExceptionMsg
public static java.lang.String massageExceptionMsg(java.lang.String s)
- as the name suggests, removes random irregularities
from exception messages - different versions of JDBC drivers
have slightly different line terminating strategies...sigh
Tnis converts all line separators to \r\n
and always returms \r\n at the end of a message
TODO: retval should be a StringBuffer for efficiency
addStandardCanonizers
public static void addStandardCanonizers()