1 /*** 2 * The contents of this file are subject to the Mozilla Public 3 * License Version 1.1 (the "License"); you may not use this file 4 * except in compliance with the License. You may obtain a copy of 5 * the License at http://www.mozilla.org/MPL/ 6 * 7 * Software distributed under the License is distributed on an "AS 8 * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or 9 * implied. See the License for the specific language governing 10 * rights and limitations under the License. 11 * 12 * The Original Code is pow2toolkit library. 13 * 14 * The Initial Owner of the Original Code is 15 * Power Of Two S.R.L. (www.pow2.com) 16 * 17 * Portions created by Power Of Two S.R.L. are 18 * Copyright (C) Power Of Two S.R.L. 19 * All Rights Reserved. 20 * 21 * Contributor(s): 22 */ 23 24 package com.pow2.dao; 25 26 27 import java.sql.*; 28 import org.apache.log4j.Category; 29 30 31 /*** 32 * ConnectionProvider base class. 33 * <br> 34 * To create a ConnectionProvider for your preferred ConnectionPooler, 35 * extend this calss and implement <code>initialize</code> and 36 * <code>getConnection</code> methods. 37 * 38 * @author Luca Fossato <fossato@pow2.com> 39 * @created 25 giugno 2002 40 */ 41 public abstract class ConnectionProvider 42 { 43 /*** Log4j category */ 44 protected Category cat = Category.getInstance(this.getClass()); 45 46 /*** ConnectionProvider preferences */ 47 protected ConnectionProviderPrefs prefs = null; 48 49 50 /*** 51 * Constructor for the ConnectionProvider object. 52 * 53 * @exception Exception Description of the Exception 54 */ 55 public ConnectionProvider() throws Exception 56 { 57 } 58 59 60 /*** 61 * Gets the prefs attribute of the ConnectionProvider object 62 * 63 * @return The prefs value 64 */ 65 public ConnectionProviderPrefs getPrefs() 66 { 67 return prefs; 68 } 69 70 71 /*** 72 * Sets the prefs attribute of the ConnectionProvider object 73 * 74 * @param prefs The new prefs value 75 */ 76 public void setPrefs(ConnectionProviderPrefs prefs) 77 { 78 this.prefs = prefs; 79 } 80 81 82 /*** 83 * Initialize the connection pool provider. 84 * 85 * @exception Exception Description of the Exception 86 */ 87 protected abstract void init() throws Exception; 88 89 90 /*** 91 * Get a JDBC Connection. 92 * 93 * @return a JDBC Connection 94 * @exception SQLException Description of the Exception 95 */ 96 protected abstract Connection getConnection() throws SQLException; 97 98 99 /*** 100 * Get a "transactional" JDBC connection. 101 * 102 * @param isolationLevel the isolation level to set the connection to 103 * @return the new "transactional" connection object 104 * @throws SQLException if any error occurs 105 */ 106 protected Connection getConnection(int isolationLevel) throws SQLException 107 { 108 Connection con = getConnection(); 109 con.setTransactionIsolation(isolationLevel); 110 con.setAutoCommit(false); 111 112 return con; 113 } 114 115 116 /*** 117 * Get the last token from the input string. 118 * 119 * @param str the string containing the token 120 * @param tokenSeparator the token separator string (i.e.: "'", ":", etc) 121 * @return the last token from the input string 122 */ 123 protected String getLastToken(String str, String tokenSeparator) 124 { 125 str.trim(); 126 return str.substring(str.lastIndexOf(tokenSeparator) + 1, str.length()); 127 } 128 }