001: package liquibase.database;
002:
003: import liquibase.exception.JDBCException;
004:
005: import java.sql.Connection;
006: import java.text.ParseException;
007:
008: public class CacheDatabase extends AbstractDatabase {
009: public static final String PRODUCT_NAME = "cache";
010:
011: public String getBlobType() {
012: return "LONGVARBINARY";
013: }
014:
015: public String getBooleanType() {
016: return "INTEGER";
017: }
018:
019: public String getClobType() {
020: return "LONGVARCHAR";
021: }
022:
023: public String getCurrencyType() {
024: return "MONEY";
025: }
026:
027: public String getDateTimeType() {
028: return "DATETIME";
029: }
030:
031: public String getUUIDType() {
032: return "CHAR(36)";
033: }
034:
035: public String getCurrentDateTimeFunction() {
036: return "SYSDATE";
037: }
038:
039: public String getDefaultDriver(String url) {
040: if (url.startsWith("jdbc:Cache")) {
041: return "com.intersys.jdbc.CacheDriver";
042: }
043: return null;
044: }
045:
046: public String getProductName() {
047: return "Cache";
048: }
049:
050: public String getTypeName() {
051: return "cache";
052: }
053:
054: public boolean isCorrectDatabaseImplementation(Connection conn)
055: throws JDBCException {
056: return PRODUCT_NAME
057: .equalsIgnoreCase(getDatabaseProductName(conn));
058: }
059:
060: public boolean supportsInitiallyDeferrableColumns() {
061: return false;
062: }
063:
064: @Override
065: public String getLineComment() {
066: return "--";
067: }
068:
069: public String getFalseBooleanValue() {
070: return "0";
071: }
072:
073: public String getTrueBooleanValue() {
074: return "1";
075: }
076:
077: @Override
078: protected String getDefaultDatabaseSchemaName()
079: throws JDBCException {
080: return "";
081: }
082:
083: public boolean supportsSequences() {
084: return false;
085: }
086:
087: public boolean supportsTablespaces() {
088: return false;
089: }
090:
091: public boolean supportsAutoIncrement() {
092: return false;
093: }
094:
095: public Object convertDatabaseValueToJavaObject(Object defaultValue,
096: int dataType, int columnSize, int decimalDigits)
097: throws ParseException {
098: if (defaultValue != null) {
099: if (defaultValue instanceof String) {
100: String stringDefaultValue = (String) defaultValue;
101: if (stringDefaultValue.charAt(0) == '"'
102: && stringDefaultValue.charAt(stringDefaultValue
103: .length() - 1) == '"') {
104: defaultValue = stringDefaultValue.substring(1,
105: stringDefaultValue.length() - 1);
106: } else if (stringDefaultValue.startsWith("$")) {
107: defaultValue = "OBJECTSCRIPT '" + defaultValue
108: + "'";
109: }
110: }
111: }
112: return super .convertDatabaseValueToJavaObject(defaultValue,
113: dataType, columnSize, decimalDigits);
114:
115: }
116:
117: public String getViewDefinition(String schemaName, String viewName)
118: throws JDBCException {
119: return null;
120: }
121: }
|