data sources update and tests
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / types / SqlServer2000DatabaseType.java
index a7ef9e9e5e89261a435fae404c537df9740152b6..8647c2f163081d61cc048b1364b0a904ab47c783 100644 (file)
@@ -1,14 +1,22 @@
 /**\r
- * \r
- */\r
+* Copyright (C) 2007 EDIT\r
+* European Distributed Institute of Taxonomy \r
+* http://www.e-taxonomy.eu\r
+* \r
+* The contents of this file are subject to the Mozilla Public License Version 1.1\r
+* See LICENSE.TXT at the top of this package for the full license terms.\r
+*/\r
+\r
 package eu.etaxonomy.cdm.database.types;\r
 \r
+import eu.etaxonomy.cdm.database.ICdmDataSource;\r
+\r
 \r
 /**\r
  * @author a.mueller\r
  *\r
  */\r
-public class SqlServer2000DatabaseType extends AbstractDatabaseType {\r
+public class SqlServer2000DatabaseType extends DatabaseTypeBase {\r
 \r
        //name\r
        protected String typeName = "SQL Server";\r
@@ -25,13 +33,55 @@ public class SqlServer2000DatabaseType extends AbstractDatabaseType {
     //hibernate dialect\r
     private String hibernateDialect = "SQLServerDialect";\r
  \r
-    public String getConnectionString(String server, String database, int port){\r
-               return urlString + server + ":" + port + ";databaseName=" + database+";SelectMethod=cursor";\r
+    public String getConnectionString(ICdmDataSource ds, int port){\r
+               return urlString + ds.getServer() + ":" + port + ";databaseName=" + ds.getDatabase() + ";SelectMethod=cursor";\r
     }\r
-       \r
+    \r
+    \r
+    \r
+    /* (non-Javadoc)\r
+        * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getServerNameByConnectionString(java.lang.String)\r
+        */\r
+       @Override\r
+       public String getServerNameByConnectionString(String connectionString) {\r
+               String dbSeparator = ";";\r
+               return super.getServerNameByConnectionString(connectionString, urlString, dbSeparator);\r
+       }\r
+\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
+               String dbSeparator = ";";\r
+               return getPortByConnectionString(connectionString, urlString, dbSeparator);\r
+       }\r
+\r
+\r
+\r
+       /* (non-Javadoc)\r
+     * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getServerNameByConnectionString(java.lang.String)\r
+     */\r
+    @Override\r
+    public String getDatabaseNameByConnectionString(String connectionString){\r
+       String result;\r
+       String dbStart = ";databaseName=";\r
+       int posDbStart = connectionString.indexOf(dbStart);\r
+       result = connectionString.substring(posDbStart + dbStart.length());\r
+       int posNextAttr = result.indexOf(";");\r
+       if (posNextAttr != 0){\r
+               result = result.substring(0, posNextAttr);\r
+       }\r
+       return result;\r
+    }\r
+    \r
        //Constructor\r
     public SqlServer2000DatabaseType() {\r
        init (typeName, classString, urlString, defaultPort,  hibernateDialect );\r
        }\r
+    \r
+\r
 \r
 }
\ No newline at end of file