data sources update and tests
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / types / OracleDatabaseType.java
index e48f77929517baff6d661e8c7beadef1f4e9fb1d..0527cbdcfbb905297849dfca456001d8b63bb573 100644 (file)
@@ -9,6 +9,8 @@
 \r
 package eu.etaxonomy.cdm.database.types;\r
 \r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+\r
 \r
 /**\r
  * @author a.mueller\r
@@ -27,17 +29,58 @@ public class OracleDatabaseType extends DatabaseTypeBase {
     //hibernate dialect\r
     private String hibernateDialect = "OracleDialect";\r
 \r
+    private String dbSeparator = ":";\r
+    \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.database.types.IDatabaseType#getServerNameByConnectionString(java.lang.String)\r
+        */\r
+       public String getServerNameByConnectionString(String connectionString){\r
+       return getServerNameByConnectionString(connectionString, urlString, dbSeparator);\r
+    }\r
     \r
     //connection String\r
-       public String getConnectionString(String server, String database, int port){\r
-        return urlString + server + ":" + port + ":" + database;\r
+       public String getConnectionString(ICdmDataSource ds, int port){\r
+        return urlString + ds.getServer() + ":" + port + dbSeparator + ds.getDatabase();\r
     }  \r
     \r
-    public OracleDatabaseType() {\r
-       init (typeName, classString, urlString, defaultPort,  hibernateDialect );\r
-       }\r
 \r
+       /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getPortByConnectionString(java.lang.String)\r
+        */\r
+       @Override\r
+       public int getPortByConnectionString(String connectionString) {\r
+               return getPortByConnectionString(connectionString, urlString, dbSeparator);\r
+       }\r
+       \r
+    /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getServerNameByConnectionString(java.lang.String)\r
+     */\r
+    public String getDatabaseNameByConnectionString(String connectionString){\r
+       String result;\r
+       result = getDatabasePartOfConnectionString(connectionString, dbSeparator);\r
+       //returns port also because port separator == db separator\r
+       if (result != null){\r
+               int pos = result.indexOf(dbSeparator);\r
+               if (pos != -1 ){\r
+                       result = result.substring(pos+ dbSeparator.length());\r
+               }\r
+       }\r
+               \r
+       //TODO\r
+//     int posParams = result.indexOf("?");\r
+//     if (posParams != -1){\r
+//             result = result.substring(0, posParams);\r
+//     }\r
+       return result;\r
+    }\r
 \r
+       \r
+    /**\r
+     * Constructor\r
+     */\r
+       public OracleDatabaseType() {\r
+       init (typeName, classString, urlString, defaultPort,  hibernateDialect );\r
+       }\r
 \r
 \r
 }\r