dgraham     2003/10/22 20:53:31

  Modified:    dbutils/src/java/org/apache/commons/dbutils
                        ProxyFactory.java
               dbutils/src/test/org/apache/commons/dbutils
                        ProxyFactoryTest.java
  Log:
  Added createCallableStatement() and tests.
  
  Revision  Changes    Path
  1.3       +140 -118  
jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/ProxyFactory.java
  
  Index: ProxyFactory.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/dbutils/src/java/org/apache/commons/dbutils/ProxyFactory.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ProxyFactory.java 22 Oct 2003 04:13:21 -0000      1.2
  +++ ProxyFactory.java 23 Oct 2003 03:53:31 -0000      1.3
  @@ -63,6 +63,7 @@
   
   import java.lang.reflect.InvocationHandler;
   import java.lang.reflect.Proxy;
  +import java.sql.CallableStatement;
   import java.sql.Connection;
   import java.sql.Driver;
   import java.sql.PreparedStatement;
  @@ -81,120 +82,141 @@
    */
   public class ProxyFactory {
   
  -    /**
  -     * Class[] for Connection interface.
  -     */
  -    private static final Class[] connectionClass = new Class[] { Connection.class };
  -
  -    /**
  -     * Class[] for Driver interface.
  -     */
  -    private static final Class[] driverClass = new Class[] { Driver.class };
  -
  -    /**
  -     * The Singleton instance of this class.
  -     */
  -    private static final ProxyFactory instance = new ProxyFactory();
  -
  -    /**
  -     * Class[] for ResultSetMetaData interface.
  -     */
  -    private static final Class[] metaClass = new Class[] { ResultSetMetaData.class 
};
  -
  -    /**
  -     * Class[] for PreparedStatement interface.
  -     */
  -    private static final Class[] preparedStatementClass =
  -        new Class[] { PreparedStatement.class };
  -
  -    /**
  -     * Class[] for ResultSet interface.
  -     */
  -    private static final Class[] resultSetClass = new Class[] { ResultSet.class };
  -
  -    /**
  -     * Class[] for Statement interface.
  -     */
  -    private static final Class[] statementClass = new Class[] { Statement.class };
  -
  -    /**
  -     * Returns the Singleton instance of this class.
  -     */
  -    public static ProxyFactory instance() {
  -        return instance;
  -    }
  -
  -    /**
  -     * Protected constructor for ProxyFactory subclasses to use.
  -     */
  -    protected ProxyFactory() {
  -        super();
  -    }
  -
  -    /**
  -     * Creates a new proxy <code>Connection</code> object.
  -     * @param handler The handler that intercepts/overrides method calls.
  -     */
  -    public Connection createConnection(InvocationHandler handler) {
  -        return (Connection) Proxy.newProxyInstance(
  -            handler.getClass().getClassLoader(),
  -            connectionClass,
  -            handler);
  -    }
  -
  -    /**
  -     * Creates a new proxy <code>Driver</code> object.
  -     * @param handler The handler that intercepts/overrides method calls.
  -     */
  -    public Driver createDriver(InvocationHandler handler) {
  -        return (Driver) Proxy.newProxyInstance(
  -            handler.getClass().getClassLoader(),
  -            driverClass,
  -            handler);
  -    }
  -
  -    /**
  -     * Creates a new proxy <code>PreparedStatement</code> object.
  -     * @param handler The handler that intercepts/overrides method calls.
  -     */
  -    public PreparedStatement createPreparedStatement(InvocationHandler handler) {
  -        return (PreparedStatement) Proxy.newProxyInstance(
  -            handler.getClass().getClassLoader(),
  -            preparedStatementClass,
  -            handler);
  -    }
  -
  -    /**
  -     * Creates a new proxy <code>ResultSet</code> object.
  -     * @param handler The handler that intercepts/overrides method calls.
  -     */
  -    public ResultSet createResultSet(InvocationHandler handler) {
  -        return (ResultSet) Proxy.newProxyInstance(
  -            handler.getClass().getClassLoader(),
  -            resultSetClass,
  -            handler);
  -    }
  -
  -    /**
  -     * Creates a new proxy <code>ResultSetMetaData</code> object.
  -     * @param handler The handler that intercepts/overrides method calls.
  -     */
  -    public ResultSetMetaData createResultSetMetaData(InvocationHandler handler) {
  -        return (ResultSetMetaData) Proxy.newProxyInstance(
  -            handler.getClass().getClassLoader(),
  -            metaClass,
  -            handler);
  -    }
  -
  -    /**
  -     * Creates a new proxy <code>Statement</code> object.
  -     * @param handler The handler that intercepts/overrides method calls.
  -     */
  -    public Statement createStatement(InvocationHandler handler) {
  -        return (Statement) Proxy.newProxyInstance(
  -            handler.getClass().getClassLoader(),
  -            statementClass,
  -            handler);
  -    }
  +     /**
  +      * Class[] for CallableStatement interface.
  +      */
  +     private static final Class[] callableStatementClass =
  +             new Class[] { CallableStatement.class };
  +
  +     /**
  +      * Class[] for Connection interface.
  +      */
  +     private static final Class[] connectionClass =
  +             new Class[] { Connection.class };
  +
  +     /**
  +      * Class[] for Driver interface.
  +      */
  +     private static final Class[] driverClass = new Class[] { Driver.class };
  +
  +     /**
  +      * The Singleton instance of this class.
  +      */
  +     private static final ProxyFactory instance = new ProxyFactory();
  +
  +     /**
  +      * Class[] for ResultSetMetaData interface.
  +      */
  +     private static final Class[] metaClass =
  +             new Class[] { ResultSetMetaData.class };
  +
  +     /**
  +      * Class[] for PreparedStatement interface.
  +      */
  +     private static final Class[] preparedStatementClass =
  +             new Class[] { PreparedStatement.class };
  +
  +     /**
  +      * Class[] for ResultSet interface.
  +      */
  +     private static final Class[] resultSetClass =
  +             new Class[] { ResultSet.class };
  +
  +     /**
  +      * Class[] for Statement interface.
  +      */
  +     private static final Class[] statementClass =
  +             new Class[] { Statement.class };
  +
  +     /**
  +      * Returns the Singleton instance of this class.
  +      */
  +     public static ProxyFactory instance() {
  +             return instance;
  +     }
  +
  +     /**
  +      * Protected constructor for ProxyFactory subclasses to use.
  +      */
  +     protected ProxyFactory() {
  +             super();
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>CallableStatement</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public PreparedStatement createCallableStatement(InvocationHandler handler) {
  +             return (CallableStatement) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     callableStatementClass,
  +                     handler);
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>Connection</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public Connection createConnection(InvocationHandler handler) {
  +             return (Connection) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     connectionClass,
  +                     handler);
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>Driver</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public Driver createDriver(InvocationHandler handler) {
  +             return (Driver) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     driverClass,
  +                     handler);
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>PreparedStatement</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public PreparedStatement createPreparedStatement(InvocationHandler handler) {
  +             return (PreparedStatement) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     preparedStatementClass,
  +                     handler);
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>ResultSet</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public ResultSet createResultSet(InvocationHandler handler) {
  +             return (ResultSet) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     resultSetClass,
  +                     handler);
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>ResultSetMetaData</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public ResultSetMetaData createResultSetMetaData(InvocationHandler handler) {
  +             return (ResultSetMetaData) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     metaClass,
  +                     handler);
  +     }
  +
  +     /**
  +      * Creates a new proxy <code>Statement</code> object.
  +      * @param handler The handler that intercepts/overrides method calls.
  +      */
  +     public Statement createStatement(InvocationHandler handler) {
  +             return (Statement) Proxy.newProxyInstance(
  +                     handler.getClass().getClassLoader(),
  +                     statementClass,
  +                     handler);
  +     }
   
   }
  
  
  
  1.3       +10 -3     
jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/ProxyFactoryTest.java
  
  Index: ProxyFactoryTest.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-commons-sandbox/dbutils/src/test/org/apache/commons/dbutils/ProxyFactoryTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- ProxyFactoryTest.java     23 Oct 2003 01:15:34 -0000      1.2
  +++ ProxyFactoryTest.java     23 Oct 2003 03:53:31 -0000      1.3
  @@ -63,6 +63,7 @@
   
   import java.lang.reflect.InvocationHandler;
   import java.lang.reflect.Method;
  +import java.sql.CallableStatement;
   import java.sql.Connection;
   import java.sql.Driver;
   import java.sql.PreparedStatement;
  @@ -125,6 +126,12 @@
        public void testCreateStatement() {
                assertTrue(
                        ProxyFactory.instance().createStatement(stub) instanceof 
Statement);
  +     }
  +
  +     public void testCreateCallableStatement() {
  +             assertTrue(
  +                     ProxyFactory.instance().createCallableStatement(stub)
  +                             instanceof CallableStatement);
        }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to