minor
[cdmlib.git] / cdmlib-persistence / src / main / java / eu / etaxonomy / cdm / database / types / OracleDatabaseType.java
1 /**
2 * Copyright (C) 2007 EDIT
3 * European Distributed Institute of Taxonomy
4 * http://www.e-taxonomy.eu
5 *
6 * The contents of this file are subject to the Mozilla Public License Version 1.1
7 * See LICENSE.TXT at the top of this package for the full license terms.
8 */
9
10 package eu.etaxonomy.cdm.database.types;
11
12 import org.hibernate.dialect.Dialect;
13 import org.hibernate.dialect.Oracle10gDialect;
14
15 import eu.etaxonomy.cdm.database.ICdmDataSource;
16
17
18 /**
19 * @author a.mueller
20 *
21 */
22 public class OracleDatabaseType extends DatabaseTypeBase {
23
24 //typeName
25 protected String typeName = "Oracle";
26 //class
27 protected String classString = "oracle.jdbc.driver.OracleDriver";
28 //url
29 protected String urlString = "jdbc:oracle:thin:@";
30 //port
31 private int defaultPort = 1521;
32 //hibernate dialect
33 private Dialect hibernateDialect = new Oracle10gDialect();
34
35 private String dbSeparator = ":";
36
37 /* (non-Javadoc)
38 * @see eu.etaxonomy.cdm.database.types.IDatabaseType#getServerNameByConnectionString(java.lang.String)
39 */
40 public String getServerNameByConnectionString(String connectionString){
41 return getServerNameByConnectionString(connectionString, urlString, dbSeparator);
42 }
43
44 //connection String
45 public String getConnectionString(ICdmDataSource ds, int port){
46 return urlString + ds.getServer() + ":" + port + dbSeparator + ds.getDatabase();
47 }
48
49
50 /* (non-Javadoc)
51 * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getPortByConnectionString(java.lang.String)
52 */
53 @Override
54 public int getPortByConnectionString(String connectionString) {
55 return getPortByConnectionString(connectionString, urlString, dbSeparator);
56 }
57
58 /* (non-Javadoc)
59 * @see eu.etaxonomy.cdm.database.types.DatabaseTypeBase#getServerNameByConnectionString(java.lang.String)
60 */
61 public String getDatabaseNameByConnectionString(String connectionString){
62 String result;
63 result = getDatabasePartOfConnectionString(connectionString, dbSeparator);
64 //returns port also because port separator == db separator
65 if (result != null){
66 int pos = result.indexOf(dbSeparator);
67 if (pos != -1 ){
68 result = result.substring(pos+ dbSeparator.length());
69 }
70 }
71
72 //TODO
73 // int posParams = result.indexOf("?");
74 // if (posParams != -1){
75 // result = result.substring(0, posParams);
76 // }
77 return result;
78 }
79
80
81 /**
82 * Constructor
83 */
84 public OracleDatabaseType() {
85 init (typeName, classString, urlString, defaultPort, hibernateDialect );
86 }
87
88
89 }