4 package eu
.etaxonomy
.cdm
.database
;
6 import java
.util
.ArrayList
;
9 import org
.apache
.log4j
.Logger
;
11 import eu
.etaxonomy
.cdm
.database
.types
.HSqlDbDatabaseType
;
12 import eu
.etaxonomy
.cdm
.database
.types
.IDatabaseType
;
13 import eu
.etaxonomy
.cdm
.database
.types
.MySQLDatabaseType
;
14 import eu
.etaxonomy
.cdm
.database
.types
.OdbcDatabaseType
;
15 import eu
.etaxonomy
.cdm
.database
.types
.PostgreSQLDatabaseType
;
16 import eu
.etaxonomy
.cdm
.database
.types
.SqlServerDatabaseType
;
22 public enum DatabaseTypeEnum
{
34 private DatabaseTypeEnum(int i
) {
38 this.dbType
= new HSqlDbDatabaseType(); break;
40 this.dbType
= new MySQLDatabaseType(); break;
42 this.dbType
= new OdbcDatabaseType(); break;
44 this.dbType
= new PostgreSQLDatabaseType(); break;
46 this.dbType
= new SqlServerDatabaseType(); break;
53 private static final Logger logger
= Logger
.getLogger(DatabaseTypeEnum
.class);
54 protected IDatabaseType dbType
;
60 public String
getName(){
61 return dbType
.getName();
67 public String
getDriverClassName(){
68 return dbType
.getClassString();
74 public String
getUrl(){
75 return dbType
.getUrlString();
81 public String
getHibernateDialect(){
82 return dbType
.getHibernateDialect();
88 public int getDefaultPort(){
89 return dbType
.getDefaultPort();
93 * returns the connection string
94 * @param server the server, e.g. IP-Address
95 * @param database the database name on the server (e.g. "testDB")
96 * @param port the port number
97 * @return the connection string
99 public String
getConnectionString(String server
, String database
, int port
){
100 String result
= dbType
.getConnectionString(server
, database
, port
);
101 logger
.debug("Connection String: " + result
);
107 * returns the connection string (using the default port)
108 * @param server the server, e.g. IP-Address
109 * @param database the database name on the server (e.g. "testDB")
110 * @return the connection string
112 public String
getConnectionString(String server
, String database
){
113 String result
= dbType
.getConnectionString(server
, database
);
114 logger
.debug("Connection String: " + result
);
119 * Returns a List of all available DatabaseEnums.
120 * @return List of DatabaseEnums
122 public static List
<DatabaseTypeEnum
> getAllTypes(){
123 List
<DatabaseTypeEnum
> result
= new ArrayList
<DatabaseTypeEnum
>();
124 for (DatabaseTypeEnum dbEnum
: DatabaseTypeEnum
.values()){
131 * Returns the DatabaseTypeEnum to a given DriverClass
132 * @param strDriverClass
133 * @return the according DatabaseTypeEnum. Null if the driver class does not exist.
135 public static DatabaseTypeEnum
getDatabaseEnumByDriverClass(String strDriverClass
){
136 for (DatabaseTypeEnum dbEnum
: DatabaseTypeEnum
.values()){
137 if (dbEnum
.getDriverClassName().equals(strDriverClass
)){
141 logger
.warn("Unknown driver class " + strDriverClass
==null ?
"null" : strDriverClass
);