Revision 0f9d4e5a
Added by Andreas Müller about 11 years ago
cdmlib-persistence/src/main/java/eu/etaxonomy/cdm/database/types/DatabaseTypeBase.java | ||
---|---|---|
12 | 12 |
import javax.sql.DataSource; |
13 | 13 |
|
14 | 14 |
import org.apache.log4j.Logger; |
15 |
import org.hibernate.dialect.Dialect; |
|
15 | 16 |
|
16 | 17 |
import eu.etaxonomy.cdm.database.ICdmDataSource; |
17 | 18 |
import eu.etaxonomy.cdm.database.NomenclaturalCodeAwareDataSource; |
... | ... | |
33 | 34 |
//defaultPort |
34 | 35 |
private int defaultPort; |
35 | 36 |
//hibernate dialect |
36 |
private String hibernateDialect;
|
|
37 |
private Dialect hibernateDialect;
|
|
37 | 38 |
//init method |
38 | 39 |
private String initMethod = null; |
39 | 40 |
//init method |
... | ... | |
41 | 42 |
|
42 | 43 |
|
43 | 44 |
//init |
44 |
protected void init(String typeName, String classString, String urlString, int defaultPort, String hibernateDialect) {
|
|
45 |
protected void init(String typeName, String classString, String urlString, int defaultPort, Dialect hibernateDialect) {
|
|
45 | 46 |
this.typeName = typeName; |
46 | 47 |
this.classString = classString; |
47 | 48 |
this.urlString = urlString; |
... | ... | |
49 | 50 |
this.hibernateDialect = hibernateDialect; |
50 | 51 |
} |
51 | 52 |
|
52 |
/* (non-Javadoc) |
|
53 |
* @see eu.etaxonomy.cdm.database.IDatabaseType#getName() |
|
54 |
*/ |
|
53 |
@Override |
|
55 | 54 |
public String getName(){ |
56 | 55 |
return typeName; |
57 | 56 |
} |
58 |
/* (non-Javadoc) |
|
59 |
* @see eu.etaxonomy.cdm.database.IDatabaseType#getClassString() |
|
60 |
*/ |
|
57 |
|
|
58 |
@Override |
|
61 | 59 |
public String getClassString(){ |
62 | 60 |
return classString; |
63 | 61 |
} |
64 | 62 |
|
65 |
/* (non-Javadoc) |
|
66 |
* @see eu.etaxonomy.cdm.database.IDatabaseType#getUrlString() |
|
67 |
*/ |
|
63 |
@Override |
|
68 | 64 |
public String getUrlString(){ |
69 | 65 |
return urlString; |
70 | 66 |
} |
71 | 67 |
|
72 |
/* (non-Javadoc) |
|
73 |
* @see eu.etaxonomy.cdm.database.IDatabaseType#getDefaultPort() |
|
74 |
*/ |
|
68 |
@Override |
|
75 | 69 |
public int getDefaultPort(){ |
76 | 70 |
return defaultPort; |
77 | 71 |
} |
78 | 72 |
|
79 |
/* (non-Javadoc) |
|
80 |
* @see eu.etaxonomy.cdm.database.IDatabaseType#getHibernateDialect() |
|
81 |
*/ |
|
82 |
public String getHibernateDialect(){ |
|
83 |
return "org.hibernate.dialect." + hibernateDialect; |
|
73 |
@Override |
|
74 |
public Dialect getHibernateDialect(){ |
|
75 |
return hibernateDialect; |
|
84 | 76 |
} |
85 |
|
|
86 |
/* (non-Javadoc) |
|
87 |
* @see eu.etaxonomy.cdm.database.IDatabaseType#getConnectionString(java.lang.String, java.lang.String) |
|
88 |
*/ |
|
77 |
|
|
78 |
@Override |
|
79 |
public String getHibernateDialectCanonicalName(){ |
|
80 |
return hibernateDialect.getClass().getCanonicalName(); |
|
81 |
} |
|
82 |
|
|
83 |
@Override |
|
89 | 84 |
public String getConnectionString(ICdmDataSource cdmDataSource){ |
90 | 85 |
int port = cdmDataSource.getPort(); |
91 | 86 |
if (port< 1){ |
... | ... | |
96 | 91 |
|
97 | 92 |
abstract protected String getConnectionString(ICdmDataSource cdmDataSource, int port); |
98 | 93 |
|
99 |
/* (non-Javadoc) |
|
100 |
* @see eu.etaxonomy.cdm.database.types.IDatabaseType#getDataSourceClass() |
|
101 |
*/ |
|
94 |
@Override |
|
102 | 95 |
public Class<? extends DataSource> getDataSourceClass() { |
103 | 96 |
return NomenclaturalCodeAwareDataSource.class; |
104 | 97 |
} |
105 | 98 |
|
106 |
/* (non-Javadoc) |
|
107 |
* @see eu.etaxonomy.cdm.database.types.IDatabaseType#getInitMethod() |
|
108 |
*/ |
|
99 |
@Override |
|
109 | 100 |
public String getInitMethod() { |
110 | 101 |
return initMethod; |
111 | 102 |
} |
112 | 103 |
|
113 |
/* (non-Javadoc) |
|
114 |
* @see eu.etaxonomy.cdm.database.types.IDatabaseType#getDestroyMethod() |
|
115 |
*/ |
|
104 |
@Override |
|
116 | 105 |
public String getDestroyMethod() { |
117 | 106 |
return destroyMethod; |
118 | 107 |
} |
119 | 108 |
|
120 |
/* (non-Javadoc) |
|
121 |
* @see eu.etaxonomy.cdm.database.types.IDatabaseType#getServerNameByConnectionString(java.lang.String) |
|
122 |
*/ |
|
109 |
@Override |
|
123 | 110 |
public String getServerNameByConnectionString(String connectionString){ |
124 | 111 |
return getServerNameByConnectionString(connectionString, urlString, "/"); |
125 | 112 |
} |
... | ... | |
143 | 130 |
return result; |
144 | 131 |
} |
145 | 132 |
|
146 |
/* (non-Javadoc) |
|
147 |
* @see eu.etaxonomy.cdm.database.types.IDatabaseType#getPortByConnectionString(java.lang.String) |
|
148 |
*/ |
|
133 |
@Override |
|
149 | 134 |
public int getPortByConnectionString(String connectionString){ |
150 | 135 |
String dbSeparator = "/"; |
151 | 136 |
return getPortByConnectionString(connectionString, urlString, dbSeparator); |
... | ... | |
195 | 180 |
return result; |
196 | 181 |
} |
197 | 182 |
|
198 |
/* (non-Javadoc) |
|
199 |
* @see eu.etaxonomy.cdm.database.types.IDatabaseType#getDatabaseNameByConnectionString(java.lang.String) |
|
200 |
*/ |
|
183 |
@Override |
|
201 | 184 |
public abstract String getDatabaseNameByConnectionString(String connectionString); |
202 | 185 |
|
203 | 186 |
|
Also available in: Unified diff
Allow access to hibernate dialect via DatabaseTypeEnum, use this for foreign key handling in TableCreator and ColumnAdder/Changer