Project

General

Profile

« Previous | Next » 

Revision 0f9d4e5a

Added by Andreas Müller over 10 years ago

Allow access to hibernate dialect via DatabaseTypeEnum, use this for foreign key handling in TableCreator and ColumnAdder/Changer

View differences:

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