db-derby-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From rhille...@apache.org
Subject svn commit: r724735 [7/11] - in /db/derby/code/trunk: ./ java/stubs/jdbc3/ java/stubs/jdbc3/java/ java/stubs/jdbc3/java/sql/ java/stubs/jdbc3/javax/ java/stubs/jdbc3/javax/sql/ java/stubs/jdbc4/ java/stubs/jdbc4/java/ java/stubs/jdbc4/java/sql/ java/st...
Date Tue, 09 Dec 2008 15:06:12 GMT
Added: db/derby/code/trunk/java/stubs/jdbc3/java/sql/Types.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/java/sql/Types.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/java/sql/Types.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/java/sql/Types.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,184 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package java.sql;
+
+/**
+ * A class which defines constants used to identify generic SQL types, also
+ * called JDBC types. The type constant values are equivalent to those in XOPEN.
+ */
+public class Types {
+
+    /*
+     * Private constructor to prevent instantiation.
+     */
+    private Types() {
+        super();
+    }
+
+    /**
+     * The type code that identifies the SQL type ARRAY.
+     */
+    public static final int ARRAY = 2003;
+
+    /**
+     * The type code that identifies the SQL type BIGINT.
+     */
+    public static final int BIGINT = -5;
+
+    /**
+     * The type code that identifies the SQL type BINARY.
+     */
+    public static final int BINARY = -2;
+
+    /**
+     * The type code that identifies the SQL type BIT.
+     */
+    public static final int BIT = -7;
+
+    /**
+     * The type code that identifies the SQL type BLOB.
+     */
+    public static final int BLOB = 2004;
+
+    /**
+     * The type code that identifies the SQL type BOOLEAN.
+     */
+    public static final int BOOLEAN = 16;
+
+    /**
+     * The type code that identifies the SQL type CHAR.
+     */
+    public static final int CHAR = 1;
+
+    /**
+     * The type code that identifies the SQL type CLOB.
+     */
+    public static final int CLOB = 2005;
+
+    /**
+     * The type code that identifies the SQL type DATALINK.
+     */
+    public static final int DATALINK = 70;
+
+    /**
+     * The type code that identifies the SQL type DATE.
+     */
+    public static final int DATE = 91;
+
+    /**
+     * The type code that identifies the SQL type DECIMAL.
+     */
+    public static final int DECIMAL = 3;
+
+    /**
+     * The type code that identifies the SQL type DISTINCT.
+     */
+    public static final int DISTINCT = 2001;
+
+    /**
+     * The type code that identifies the SQL type DOUBLE.
+     */
+    public static final int DOUBLE = 8;
+
+    /**
+     * The type code that identifies the SQL type FLOAT.
+     */
+    public static final int FLOAT = 6;
+
+    /**
+     * The type code that identifies the SQL type INTEGER.
+     */
+    public static final int INTEGER = 4;
+
+    /**
+     * The type code that identifies the SQL type JAVA_OBJECT.
+     */
+    public static final int JAVA_OBJECT = 2000;
+
+    /**
+     * The type code that identifies the SQL type LONGVARBINARY.
+     */
+    public static final int LONGVARBINARY = -4;
+
+    /**
+     * The type code that identifies the SQL type LONGVARCHAR.
+     */
+    public static final int LONGVARCHAR = -1;
+
+    /**
+     * The type code that identifies the SQL type NULL.
+     */
+    public static final int NULL = 0;
+
+    /**
+     * The type code that identifies the SQL type NUMERIC.
+     */
+    public static final int NUMERIC = 2;
+
+    /**
+     * The type code that identifies that the SQL type is database specific and
+     * is mapped to a Java object, accessed via the methods
+     * <code>getObject</code> and <code>setObject</code>.
+     */
+    public static final int OTHER = 1111;
+
+    /**
+     * The type code that identifies the SQL type REAL.
+     */
+    public static final int REAL = 7;
+
+    /**
+     * The type code that identifies the SQL type REF.
+     */
+    public static final int REF = 2006;
+
+    /**
+     * The type code that identifies the SQL type SMALLINT.
+     */
+    public static final int SMALLINT = 5;
+
+    /**
+     * The type code that identifies the SQL type STRUCT.
+     */
+    public static final int STRUCT = 2002;
+
+    /**
+     * The type code that identifies the SQL type TIME.
+     */
+    public static final int TIME = 92;
+
+    /**
+     * The type code that identifies the SQL type TIMESTAMP.
+     */
+    public static final int TIMESTAMP = 93;
+
+    /**
+     * The type code that identifies the SQL type TINYINT.
+     */
+    public static final int TINYINT = -6;
+
+    /**
+     * The type code that identifies the SQL type VARBINARY.
+     */
+    public static final int VARBINARY = -3;
+
+    /**
+     * The type code that identifies the SQL type VARCHAR.
+     */
+    public static final int VARCHAR = 12;
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/java/sql/Types.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEvent.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEvent.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEvent.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEvent.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,72 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.util.EventObject;
+import java.sql.SQLException;
+import java.io.Serializable;
+
+/**
+ * An Event object which is sent when specific events happen on a
+ * PooledConnection object. The events involved are when the application closing
+ * the PooledConnection and when an error occurs in the PooledConnection.
+ */
+public class ConnectionEvent extends EventObject implements Serializable {
+
+    private static final long serialVersionUID = -4843217645290030002L;
+
+    private SQLException ex;
+
+    /**
+     * Creates a connection event initialized with a supplied PooledConnection.
+     * 
+     * @param theConnection
+     *            the PooledConnection
+     */
+    public ConnectionEvent(PooledConnection theConnection) {
+        super(theConnection);
+    }
+
+    /**
+     * Creates a ConnectionEvent initialized with a supplied PooledConnection
+     * and with a supplied SQLException indicating that an error has occurred
+     * within the PooledConnection.
+     * 
+     * @param theConnection
+     *            the PooledConnection
+     * @param theException
+     *            the SQLException holding information about the error that has
+     *            occurred, which is about to be returned to the application.
+     */
+    public ConnectionEvent(PooledConnection theConnection,
+            SQLException theException) {
+        super(theConnection);
+        ex = theException;
+    }
+
+    /**
+     * Gets the SQLException which holds information about the error which
+     * occurred in the PooledConnection.
+     * 
+     * @return an SQLException containing information about the error. May be
+     *         null if no error has occurred.
+     */
+    public SQLException getSQLException() {
+        return ex;
+    }
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEvent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEventListener.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEventListener.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEventListener.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEventListener.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,59 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.util.EventListener;
+
+/**
+ * An interface used to receive events generated by a
+ * <code>PooledConnection</code>.
+ * <p>
+ * This interface would typically be implemented by a component which implements
+ * Connection Pooling (a Connection Pool Manager). A Connection will signal
+ * events to a ConnectionEventListener either when the application closes a
+ * Connection it has been using or when a significant error occurs while the
+ * Connection is being used, where the Connection should not be used again.
+ * <p>
+ * The Connection Pool Manager can return closed Connections to the Pool for
+ * later reuse. Connections experiencing an error should be discarded.
+ * 
+ */
+public interface ConnectionEventListener extends EventListener {
+
+    /**
+     * Notifies the ConnectionEventListener that an application has called the
+     * <code>close</code> method on a pooled Connection.
+     * 
+     * @param theEvent
+     *            a ConnectionEvent containing detail about the source of the
+     *            event.
+     */
+    public void connectionClosed(ConnectionEvent theEvent);
+
+    /**
+     * Notifies the ConnectionEventListener that an error has occurred while a
+     * PooledConnection was being used and that the PooledConnection can no
+     * longer be used for work. This notification is done just before the
+     * SQLException passed in the event message is thrown to the application.
+     * 
+     * @param theEvent
+     *            a ConnectionEvent containing detail about the source of the
+     *            event and the SQLException that has occurred.
+     */
+    public void connectionErrorOccurred(ConnectionEvent theEvent);
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionEventListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionPoolDataSource.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionPoolDataSource.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionPoolDataSource.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionPoolDataSource.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,123 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.SQLException;
+import java.io.PrintWriter;
+
+/**
+ * An interface for the creation of PooledConnection objects. Used internally
+ * within the package.
+ * <p>
+ * A class which implements the ConnectionPoolDataSource interface is typically
+ * registered with a JNDI naming service directory and is retrieved from there
+ * by name.
+ */
+public interface ConnectionPoolDataSource {
+
+    /**
+     * Gets the Login Timeout value for this ConnectionPoolDataSource. The Login
+     * Timeout is the maximum time in seconds that the ConnectionPoolDataSource
+     * will wait when opening a connection to a database. A Timeout value of 0
+     * implies either the system default timeout value (if there is one) or that
+     * there is no timeout. The default value for the Login Timeout is 0.
+     * 
+     * @return the Login Timeout value in seconds.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public int getLoginTimeout() throws SQLException;
+
+    /**
+     * Gets the Log Writer for this ConnectionPoolDataSource.
+     * <p>
+     * The Log Writer is a stream to which all log and trace messages are sent
+     * from this ConnectionPoolDataSource. The Log Writer can be null, in which
+     * case, log and trace capture is disabled. The default value for the Log
+     * Writer when an ConnectionPoolDataSource is created is null. Note that the
+     * Log Writer for an ConnectionPoolDataSource is not the same as the Log
+     * Writer used by a <code>DriverManager</code>.
+     * 
+     * @return a PrintWriter which is the Log Writer for this
+     *         ConnectionPoolDataSource. Can be null, in which case log writing
+     *         is disabled for this ConnectionPoolDataSource.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public PrintWriter getLogWriter() throws SQLException;
+
+    /**
+     * Create a connection to a database which can then be used as a pooled
+     * connection.
+     * 
+     * @return a PooledConnection which represents the connection to the
+     *         database
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public PooledConnection getPooledConnection() throws SQLException;
+
+    /**
+     * Create a connection to a database, using a supplied Username and
+     * Password, which can then be used as a pooled connection.
+     * 
+     * @param theUser
+     *            a String containing a User Name for the database
+     * @param thePassword
+     *            a String containing the Password for the user identified by
+     *            <code>theUser</code>
+     * @return a PooledConnection which represents the connection to the
+     *         database
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public PooledConnection getPooledConnection(String theUser,
+            String thePassword) throws SQLException;
+
+    /**
+     * Sets the Login Timeout value for this ConnectionPoolDataSource. The Login
+     * Timeout is the maximum time in seconds that the ConnectionPoolDataSource
+     * will wait when opening a connection to a database. A Timeout value of 0
+     * implies either the system default timeout value (if there is one) or that
+     * there is no timeout. The default value for the Login Timeout is 0.
+     * 
+     * @param theTimeout
+     *            the new Login Timeout value in seconds.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public void setLoginTimeout(int theTimeout) throws SQLException;
+
+    /**
+     * Sets the Log Writer for this ConnectionPoolDataSource.
+     * <p>
+     * The Log Writer is a stream to which all log and trace messages are sent
+     * from this ConnectionPoolDataSource. The Log Writer can be null, in which
+     * case, log and trace capture is disabled. The default value for the Log
+     * Writer when an ConnectionPoolDataSource is created is null. Note that the
+     * Log Writer for an ConnectionPoolDataSource is not the same as the Log
+     * Writer used by a <code>DriverManager</code>.
+     * 
+     * @param theWriter
+     *            a PrintWriter to use as the Log Writer for this
+     *            ConnectionPoolDataSource.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public void setLogWriter(PrintWriter theWriter) throws SQLException;
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/ConnectionPoolDataSource.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/DataSource.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/DataSource.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/DataSource.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/DataSource.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,138 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.SQLException;
+import java.sql.Connection;
+import java.io.PrintWriter;
+
+/**
+ * An interface for the creation of Connection objects which represent a
+ * connection to a database. This interface is an alternative to the
+ * <code>java.sql.DriverManager</code>.
+ * <p>
+ * A class which implements the DataSource interface is typically registered
+ * with a JNDI naming service directory and is retrieved from there by name.
+ * <p>
+ * The DataSource interface is typically implemented by the writer of a JDBC
+ * driver. There are three variants of the DataSource interface, which produce
+ * Connections with differing characteristics:
+ * <ol>
+ * <li>Standard DataSource, which produces standard Connection objects with no
+ * special features.</li>
+ * <li>Connection Pool DataSource, which produces PooledConnection objects
+ * which are able to participate in connection pooling, typically involving a
+ * connection pooling manager as an intermediary between applications and the
+ * database.</li>
+ * <li>Distributed transaction DataSource ("XADataSource"), which produces
+ * XAConnection objects which can be used to handle distributed transactions and
+ * which typically involve a transaction manager component in the system.
+ * XAConnection objects also typically provide connection pooling capabilities
+ * as well as distributed transaction capabilities. </li>
+ * </ol>
+ * <p>
+ * Note that a JDBC driver which is accessed via the DataSource interface is
+ * loaded via a JNDI lookup process. A driver loaded in this way does not
+ * register itself with the <code>DriverManager</code>.
+ */
+public interface DataSource {
+
+    /**
+     * Creates a connection to the database represented by this DataSource.
+     * 
+     * @return a Connection object which is a connection to the database.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public Connection getConnection() throws SQLException;
+
+    /**
+     * Creates a connection to the database represented by this DataSource,
+     * using a supplied Username and Password,.
+     * 
+     * @param theUsername
+     *            a String containing a User Name for the database
+     * @param thePassword
+     *            a String containing the Password for the user identified by
+     *            <code>theUsername</code>
+     * @return a Connection object which is a connection to the database.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public Connection getConnection(String theUsername, String thePassword)
+            throws SQLException;
+
+    /**
+     * Gets the Login Timeout value for this DataSource. The Login Timeout is
+     * the maximum time in seconds that the DataSource will wait when opening a
+     * connection to a database. A Timeout value of 0 implies either the system
+     * default timeout value (if there is one) or that there is no timeout. The
+     * default value for the Login Timeout is 0.
+     * 
+     * @return the Login Timeout value in seconds.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public int getLoginTimeout() throws SQLException;
+
+    /**
+     * Gets the Log Writer for this DataSource.
+     * <p>
+     * The Log Writer is a stream to which all log and trace messages are sent
+     * from this DataSource. The Log Writer can be null, in which case, log and
+     * trace capture is disabled. The default value for the Log Writer when an
+     * DataSource is created is null. Note that the Log Writer for an DataSource
+     * is not the same as the Log Writer used by a <code>DriverManager</code>.
+     * 
+     * @return a PrintWriter which is the Log Writer for this DataSource. Can be
+     *         null, in which case log writing is disabled for this DataSource.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public PrintWriter getLogWriter() throws SQLException;
+
+    /**
+     * Sets the Login Timeout value for this DataSource. The Login Timeout is
+     * the maximum time in seconds that the DataSource will wait when opening a
+     * connection to a database. A Timeout value of 0 implies either the system
+     * default timeout value (if there is one) or that there is no timeout. The
+     * default value for the Login Timeout is 0.
+     * 
+     * @param theTimeout
+     *            the new Login Timeout value in seconds.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public void setLoginTimeout(int theTimeout) throws SQLException;
+
+    /**
+     * Sets the Log Writer for this DataSource.
+     * <p>
+     * The Log Writer is a stream to which all log and trace messages are sent
+     * from this DataSource. The Log Writer can be null, in which case, log and
+     * trace capture is disabled. The default value for the Log Writer when an
+     * DataSource is created is null. Note that the Log Writer for an DataSource
+     * is not the same as the Log Writer used by a <code>DriverManager</code>.
+     * 
+     * @param theWriter
+     *            a PrintWriter to use as the Log Writer for this DataSource.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public void setLogWriter(PrintWriter theWriter) throws SQLException;
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/DataSource.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/PooledConnection.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/PooledConnection.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/PooledConnection.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/PooledConnection.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,111 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.SQLException;
+import java.sql.Connection;
+
+/**
+ * An interface which provides facilities for handling connections to a database
+ * which are pooled.
+ * <p>
+ * Typically, a PooledConnection is recycled when it is no longer required by an
+ * application, rather than being closed and discarded. The reason for treating
+ * connections in this way is that it can be an expensive process both to
+ * establish a connection to a database and to destroy the connection. Reusing
+ * connections through a pool is a way of improving system performance and
+ * reducing overhead.
+ * <p>
+ * It is not intended that an application use the PooledConnection interface
+ * directly. The PooledConnection interface is intended for use by a component
+ * called a Connection Pool Manager, typically part of the infrastructure that
+ * supports use of the database by applications.
+ * <p>
+ * Applications obtain connections to the database by calling the
+ * <code>DataSource.getConnection</code> method. Under the covers, the
+ * Connection Pool Manager will get a PooledConnection object from its
+ * connection pool and passes back a Connection object that wraps or references
+ * the PooledConnection object. A new PooledConnection object will only be
+ * created if the pool is empty.
+ * <p>
+ * When the application is finished using a PooledConnection, the application
+ * calls the <code>Connection.close</code> method. The Connection Pool Manager
+ * is notified via a ConnectionEvent from the Connection that this has happened
+ * (the Pool Manager registers itself with the Connection before the Connection
+ * is given to the application). The Pool Manager removes the underlying
+ * PooledConnection object from the Connection and returns it to the pool for
+ * reuse - the PooledConnection is thus recycled rather than being destroyed.
+ * <p>
+ * The connection to the database represented by the PooledConnection is kept
+ * open until the PooledConnection object itself is deactivated by the
+ * Connection Pool Manager, which calls the <code>PooledConnection.close</code>
+ * method. This is typically done if there are too many inactive connections in
+ * the pool, if the PooledConnection encounters a problem that makes it unusable
+ * or if the whole system is being shut down.
+ * 
+ */
+public interface PooledConnection {
+
+    /**
+     * Registers the supplied ConnectionEventListener with this
+     * PooledConnection. Once registered, the ConnectionEventListener will
+     * receive ConnectionEvent events when they occur in the PooledConnection.
+     * 
+     * @param theListener
+     *            an object which implements the ConnectionEventListener
+     *            interface.
+     */
+    public void addConnectionEventListener(ConnectionEventListener theListener);
+
+    /**
+     * Closes the connection to the database held by this PooledConnection. This
+     * method should not be called directly by application code - it is intended
+     * for use by the Connection Pool manager component.
+     * 
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public void close() throws SQLException;
+
+    /**
+     * Creates a connection to the database. This method is typically called by
+     * the Connection Pool manager when an application invokes the method
+     * <code>DataSource.getConnection</code> and there are no PooledConnection
+     * objects available in the connection pool.
+     * 
+     * @return a Connection object that is a handle to this PooledConnection
+     *         object.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public Connection getConnection() throws SQLException;
+
+    /**
+     * Deregister the supplied ConnectionEventListener from this
+     * PooledConnection. Once deregistered, the ConnectionEventListener will not
+     * longer receive events occurring in the PooledConnection.
+     * 
+     * @param theListener
+     *            an object which implements the ConnectionEventListener
+     *            interface. This object should have previously been registered
+     *            with the PooledConnection using the
+     *            <code>addConnectionEventListener</code> method.
+     */
+    public void removeConnectionEventListener(
+            ConnectionEventListener theListener);
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/PooledConnection.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSet.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSet.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSet.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSet.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,857 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Array;
+import java.sql.Blob;
+import java.sql.Clob;
+import java.sql.Date;
+import java.sql.Ref;
+import java.sql.Time;
+import java.sql.Timestamp;
+import java.util.Map;
+import java.io.InputStream;
+import java.io.Reader;
+import java.util.Calendar;
+import java.math.BigDecimal;
+
+/**
+ * A RowSet is an interface which provides access to data being sent from/to a
+ * database and which extends the functionality of ResultSet into a form that
+ * can be used as a JavaBeans component, perhaps being used in a visual
+ * programming environment.
+ * <p>
+ * Facilities are provided for get/set of properties relating to the Database
+ * and the SQL Command and for getting/setting data within the Rows represented
+ * by the RowSet. The RowSet supports JavaBeans events so that other components
+ * in an application can be informed when various changes happen to the RowSet,
+ * such as changes in data values.
+ * <p>
+ * RowSet is implemented as a layer on top of the remainder of the JDBC API. A
+ * RowSet may be <i>connected</i> where it maintains a connection to the
+ * database throughout its lifecycle. A RowSet may be <i>disconnected</i> where
+ * it establishes a connection to the database, gets data and then closes the
+ * connection. Updates to a disconnected RowSet can be made and later send back
+ * the changes to the database, but this requires the RowSet to first reconnect
+ * to the database before the changes are sent back.
+ * <p>
+ * Disconnected RowSets may make use of RowSetReaders to populate the RowSet
+ * with data, possibly from a non-relational database source. Disconnected
+ * RowSets may also use RowSetWriters to send data back to the underlying data
+ * store. There is considerable freedom in the way that RowSetReaders and
+ * RowSetWriters are implemented to get and store data.
+ */
+public interface RowSet extends ResultSet {
+
+    /**
+     * Registers a supplied RowSetListener with this RowSet. Once registered,
+     * the RowSetListener is notified of events generated by the RowSet.
+     * 
+     * @param theListener
+     *            an object which implements the <code>rowSetListener</code>
+     *            interface.
+     */
+    public void addRowSetListener(RowSetListener theListener);
+
+    /**
+     * Clears the parameters previously set for this RowSet.
+     * <p>
+     * Parameter values apply to repeated use of a RowSet object. Setting a new
+     * value for a parameter clears its previous value.
+     * <code>clearParameters</code> clears the values for all parameters with
+     * one method call.
+     * 
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void clearParameters() throws SQLException;
+
+    /**
+     * Fetches data for this RowSet. If successful, any existing data for the
+     * RowSet is discarded and the metadata for the rowset is set.
+     * <p>
+     * Data is retrieved connects to the database and executes a Command. This
+     * requires some or all of the following properties to be set: url, data
+     * source name, user name, password, transaction isolation, type map ; plus
+     * some or all of the properties: command, read only, maximum field size,
+     * maximum rows, escape processing, and query timeout.
+     * <p>
+     * The RowSet may use a RowSetReader to access the database - in this case a
+     * reader must be registered with the RowSet and the RowSet will then invoke
+     * the <code>readData</code> method on the reader to fetch the data.
+     * 
+     * @throws SQLException
+     *             if a problem occurs accessing the database or if the
+     *             properties needed to access the database have not been set
+     */
+    public void execute() throws SQLException;
+
+    /**
+     * Gets the RowSet's Command property.
+     * 
+     * @return a string containing the RowSet's Command property - this is an
+     *         SQL Query which can be executed to fetch data into the RowSet.
+     */
+    public String getCommand();
+
+    /**
+     * Gets the name of the datasource for this RowSet.
+     * 
+     * @return a String containing the name of the datasource.
+     */
+    public String getDataSourceName();
+
+    /**
+     * Reports if escape processing is enabled for this RowSet.
+     * <p>
+     * If <code>true</code> (the default) the driver will automatically
+     * perform escape code processing on SQL statements prior to them being sent
+     * to the database.
+     * 
+     * @return true if escape processing is enabled, false otherwise.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public boolean getEscapeProcessing() throws SQLException;
+
+    /**
+     * Gets the maximum number of bytes that can be returned for column values
+     * which are of types BINARY, VARBINARY, LONGVARBINARYBINARY, CHAR, VARCHAR,
+     * or LONGVARCHAR. Excess data is silently discarded if the number is
+     * exceeded.
+     * 
+     * @return the current maximum size in bytes. 0 means no limit
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public int getMaxFieldSize() throws SQLException;
+
+    /**
+     * Gets the maximum number of rows for this RowSet. Excess rows are
+     * discarded silently if the limit is exceeded.
+     * 
+     * @return the previous maximum number of rows. 0 implies no limit.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public int getMaxRows() throws SQLException;
+
+    /**
+     * Gets the value of the password property for this RowSet. This property is
+     * used when making a connection to the database and should be set before
+     * invoking the <code>execute</code> method.
+     * 
+     * @return a String containing the value of the password property.
+     */
+    public String getPassword();
+
+    /**
+     * Gets the Timeout for the driver when executing a Query operation.
+     * <p>
+     * If a Query takes longer than the Timeout, an exception is thrown.
+     * 
+     * @return the Timeout value in seconds.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public int getQueryTimeout() throws SQLException;
+
+    /**
+     * Gets the transaction isolation property setting for this RowSet.
+     * 
+     * @return an integer holding the current transaction isolation setting. One
+     *         of: one of Connection.TRANSACTION_READ_UNCOMMITTED,
+     *         Connection.TRANSACTION_READ_COMMITTED,
+     *         Connection.TRANSACTION_REPEATABLE_READ,
+     *         Connection.TRANSACTION_SERIALIZABLE
+     */
+    public int getTransactionIsolation();
+
+    /**
+     * Gets the custom mapping of SQL types for this RowSet, if any.
+     * 
+     * @return a Map holding the custom mappings of SQL types to Java classes
+     *         for this RowSet. By default, the Map is empty.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public Map getTypeMap() throws SQLException;
+
+    /**
+     * Gets the URL property value for this RowSet. If there is no DataSource
+     * object specified, the RowSet uses the URL to establish a connection to
+     * the database. The default value for the URL is null.
+     * 
+     * @return a String holding the value of the URL property.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public String getUrl() throws SQLException;
+
+    /**
+     * Gets the value of the Username property for this RowSet. The Username is
+     * used when establishing a connection to the database and should be set
+     * before the <code>execute</code> method is invoked.
+     * 
+     * @return a String holing the value of the Username property.
+     */
+    public String getUsername();
+
+    /**
+     * Reports if this RowSet is read only.
+     * 
+     * @return true if this RowSet is read only, false if it is updateable.
+     */
+    public boolean isReadOnly();
+
+    /**
+     * Removes a specified RowSetListener object from the set of listeners which
+     * will be notified of events by this RowSet.
+     * 
+     * @param theListener
+     *            the RowSetListener to remove from the set of listeners for
+     *            this RowSet.
+     */
+    public void removeRowSetListener(RowSetListener theListener);
+
+    /**
+     * Sets the specified ARRAY parameter in the RowSet command with the
+     * supplied java.sql.Array value.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theArray
+     *            the java.sql.Array value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setArray(int parameterIndex, Array theArray)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * ASCII data in the supplied java.io.InputStream value. Data is read from
+     * the InputStream until end-of-file is reached.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theInputStream
+     *            an InputStream containing the ASCII data to set into the
+     *            parameter value
+     * @param length
+     *            the length of the data in bytes
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setAsciiStream(int parameterIndex, InputStream theInputStream,
+            int length) throws SQLException;
+
+    /**
+     * Sets the value of the specified SQL NUMERIC parameter in the RowSet
+     * command with the data in the supplied java.math.BigDecimal value.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theBigDecimal
+     *            the BigDecimal containing the value
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setBigDecimal(int parameterIndex, BigDecimal theBigDecimal)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * binary data in the supplied java.io.InputStream value. Data is read from
+     * the InputStream until end-of-file is reached.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theInputStream
+     *            an InputStream containing the binary data to set into the
+     *            parameter value
+     * @param length
+     *            the length of the data in bytes
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setBinaryStream(int parameterIndex, InputStream theInputStream,
+            int length) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * value of a supplied java.sql.Blob.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theBlob
+     *            the Blob value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setBlob(int parameterIndex, Blob theBlob) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to the
+     * supplied boolean.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theBoolean
+     *            the boolean value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setBoolean(int parameterIndex, boolean theBoolean)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to the
+     * supplied byte value.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theByte
+     *            the byte value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setByte(int parameterIndex, byte theByte) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to the
+     * supplied byte array value.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theByteArray
+     *            the array of bytes to set into the parameter.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setBytes(int parameterIndex, byte[] theByteArray)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to the
+     * sequence of Unicode characters carried by the supplied java.io.Reader.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theReader
+     *            the Reader which contains the Unicode data to set into the
+     *            parameter
+     * @param length
+     *            the length of the data in the Reader in characters
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setCharacterStream(int parameterIndex, Reader theReader,
+            int length) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * value of a supplied java.sql.Clob.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theClob
+     *            the Clob value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setClob(int parameterIndex, Clob theClob) throws SQLException;
+
+    /**
+     * Sets the Command property for this RowSet - the command is an SQL Query
+     * which runs when the <code>execute</code> method is invoked. This
+     * property is optional for datasources that do not support commands.
+     * 
+     * @param cmd
+     *            a String containing the SQL Query. Can be null.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setCommand(String cmd) throws SQLException;
+
+    /**
+     * Sets the concurrency property of this RowSet. The default value is
+     * ResultSet.CONCUR_READ_ONLY.
+     * 
+     * @param concurrency
+     *            the new concurrency value - one of: ResultSet.CONCUR_READ_ONLY
+     *            or ResultSet.CONCUR_UPDATABLE
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setConcurrency(int concurrency) throws SQLException;
+
+    /**
+     * Sets the Data Source Name property for the RowSet.
+     * <p>
+     * The Data Source Name can be used to find a <code>DataSource</code>
+     * which has been registered with a naming service - the DataSource can then
+     * be used to create a connection to the database.
+     * 
+     * @param name
+     *            a String with the new Data Source Name.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setDataSourceName(String name) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * value of a supplied java.sql.Date.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theDate
+     *            the Date to use
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setDate(int parameterIndex, Date theDate) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * value of a supplied java.sql.Date, where the conversion of the Date to an
+     * SQL DATE value is calculated using a supplied Calendar.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theDate
+     *            the Date to use
+     * @param theCalendar
+     *            the Calendar to use in converting the Date to an SQL DATE
+     *            value
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setDate(int parameterIndex, Date theDate, Calendar theCalendar)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * supplied double.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theDouble
+     *            the double value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setDouble(int parameterIndex, double theDouble)
+            throws SQLException;
+
+    /**
+     * Sets the Escape Processing status for this RowSet. If escape processing
+     * is on, the driver performs escape substitution before sending an SQL
+     * command to the database. The default value for escape processing is on.
+     * 
+     * @param enable
+     *            true to enable Escape Processing, false to turn it off.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setEscapeProcessing(boolean enable) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * supplied float.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theFloat
+     *            the float value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setFloat(int parameterIndex, float theFloat)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * supplied integer.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theInteger
+     *            the integer value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setInt(int parameterIndex, int theInteger) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command with the
+     * supplied long.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theLong
+     *            the long value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setLong(int parameterIndex, long theLong) throws SQLException;
+
+    /**
+     * Sets the maximum number of bytes which can be returned for a column value
+     * where the column type BINARY, VARBINARY, LONGVARBINARYBINARY, CHAR,
+     * VARCHAR, or LONGVARCHAR. Data which exceeds this limit is silently
+     * discarded. For portability, a value greater than 256 is recommended.
+     * 
+     * @param max
+     *            the maximum size of the returned column value in bytes. 0
+     *            means unlimited.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setMaxFieldSize(int max) throws SQLException;
+
+    /**
+     * Sets the maximum number of rows which can be held by the RowSet. Any
+     * additional rows are silently discarded.
+     * 
+     * @param max
+     *            the maximum number of rows which can be held in the RowSet. 0
+     *            means no limit.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setMaxRows(int max) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to SQL
+     * NULL.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param sqlType
+     *            the type of the parameter, as defined by java.sql.Types.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setNull(int parameterIndex, int sqlType) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to SQL
+     * NULL. This form of the <code>setNull</code> method should be used for
+     * User Defined Types and REF parameters.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param sqlType
+     *            the type of the parameter, as defined by java.sql.Types.
+     * @param typeName
+     *            the fully qualified name of an SQL User Defined Type or the
+     *            name of the SQL structured type referenced by a REF type.
+     *            Ignored if the sqlType is not a UDT or REF type.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setNull(int parameterIndex, int sqlType, String typeName)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied Java object.
+     * <p>
+     * The JDBC specification provides a standard mapping for Java objects to
+     * SQL data types. Database specific types can be mapped by JDBC driver
+     * specific Java types.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theObject
+     *            the Java object containing the data value.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setObject(int parameterIndex, Object theObject)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied Java object.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theObject
+     *            the Java object containing the data value.
+     * @param targetSqlType
+     *            the SQL type to send to the database, as defined in
+     *            java.sql.Types.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setObject(int parameterIndex, Object theObject,
+            int targetSqlType) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied Java object.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theObject
+     *            the Java object containing the data value.
+     * @param targetSqlType
+     *            the SQL type to send to the database, as defined in
+     *            java.sql.Types.
+     * @param scale
+     *            the number of digits after the decimal point, for
+     *            java.sql.Types.DECIMAL and java.sql.Types.NUMERIC types.
+     *            Ignored for all other types.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setObject(int parameterIndex, Object theObject,
+            int targetSqlType, int scale) throws SQLException;
+
+    /**
+     * Sets the database Password for this RowSet.
+     * 
+     * @param password
+     *            a string holding the new password
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setPassword(String password) throws SQLException;
+
+    /**
+     * Sets the Timeout value for this RowSet. The timeout is the maximum time
+     * that the driver will wait while executing a command - after this time, an
+     * SQLException is thrown.
+     * 
+     * @param seconds
+     *            the number of seconds for the Timeout.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setQueryTimeout(int seconds) throws SQLException;
+
+    /**
+     * Sets whether the RowSet is read only or is updateable.
+     * 
+     * @param readOnly
+     *            true to set the RowSet to readonly state, false to allow
+     *            updates.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setReadOnly(boolean readOnly) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied java.sql.Ref. This is sent to the database as an SQL REF value.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theRef
+     *            the Ref value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setRef(int parameterIndex, Ref theRef) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied short integer.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theShort
+     *            the short value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setShort(int parameterIndex, short theShort)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied String. The String is placed into the database as a VARCHAR or
+     * LONGVARCHAR SQL value, depending on the database limits for the length of
+     * VARCHAR values.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theString
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setString(int parameterIndex, String theString)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied java.sql.Time, converting to an SQL TIME value using the system
+     * default Calendar.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theTime
+     *            the Time value to set
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setTime(int parameterIndex, Time theTime) throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied java.sql.Time, converting to an SQL TIME value using a supplied
+     * Calendar.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theTime
+     *            the Time value to set
+     * @param theCalendar
+     *            the Calendar to use in the conversion operation
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setTime(int parameterIndex, Time theTime, Calendar theCalendar)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied java.sql.Timestamp, converting to an SQL TIMESTAMP value using
+     * the system default Calendar.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theTimestamp
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setTimestamp(int parameterIndex, Timestamp theTimestamp)
+            throws SQLException;
+
+    /**
+     * Sets the value of the specified parameter in the RowSet command to a
+     * supplied java.sql.Timestamp converting to an SQL TIMESTAMP value using a
+     * supplied Calendar.
+     * 
+     * @param parameterIndex
+     *            index of the parameter to set, where the first parameter has
+     *            index = 1.
+     * @param theTimestamp
+     * @param theCalendar
+     *            the Calendar to use in the conversion operation
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setTimestamp(int parameterIndex, Timestamp theTimestamp,
+            Calendar theCalendar) throws SQLException;
+
+    /**
+     * Updates the target instance's transaction isolation level to one of a
+     * discrete set of possible values.
+     * 
+     * @param level
+     *            the new transaction isolation level. One of:
+     *            Connection.TRANSACTION_READ_UNCOMMITTED,
+     *            Connection.TRANSACTION_READ_COMMITTED,
+     *            Connection.TRANSACTION_REPEATABLE_READ, or
+     *            Connection.TRANSACTION_SERIALIZABLE
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setTransactionIsolation(int level) throws SQLException;
+
+    /**
+     * Sets the type of this RowSet. By default, the type is non-scrollable.
+     * 
+     * @param type
+     *            the new type for the RowSet. One of:
+     *            ResultSet.TYPE_FORWARD_ONLY,
+     *            ResultSet.TYPE_SCROLL_INSENSITIVE, or
+     *            ResultSet.TYPE_SCROLL_SENSITIVE
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setType(int type) throws SQLException;
+
+    /**
+     * Sets the Map used to map SQL User Defined Types to Java classes.
+     * 
+     * @param theTypeMap
+     *            a Map which defines the names of SQL UDTs and the Java classes
+     *            to which they are mapped.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setTypeMap(Map theTypeMap)
+            throws SQLException;
+
+    /**
+     * Sets the URL used by this RowSet to access the database via a
+     * <code>DriverManager</code>. The URL is optional - an alternative is to
+     * use a Data Source Name to create a connection.
+     * 
+     * @param theURL
+     *            a String containing the URL for the database. Can be null.
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setUrl(String theURL) throws SQLException;
+
+    /**
+     * Sets the Username property for the RowSet, used to authenticate a
+     * connection to the database.
+     * 
+     * @param theUsername
+     *            a String containing the User Name
+     * @throws SQLException
+     *             if an error occurs accessing the database.
+     */
+    public void setUsername(String theUsername) throws SQLException;
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSet.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetEvent.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetEvent.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetEvent.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetEvent.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,53 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.util.EventObject;
+import java.io.Serializable;
+
+/**
+ * An event which is sent when specific events happen to a RowSet object. The
+ * events are sent to inform registered listeners that changes have occurred to
+ * the RowSet. The events covered are:
+ * <ol>
+ * <li>A single row in the RowSet changes</li>
+ * <li>The whole set of data in the RowSet changes</li>
+ * <li>The RowSet cursor position changes</li>
+ * </ol>
+ * The event contains a reference to the RowSet object which generated the
+ * message so that the listeners can extract whatever information they need from
+ * that reference.
+ * 
+ */
+public class RowSetEvent extends EventObject implements Serializable {
+
+    private static final long serialVersionUID = -1875450876546332005L;
+
+    /**
+     * Creates a RowSetEvent object containing a reference to the RowSet object
+     * that generated the event. Information about the changes that have
+     * occurred to the RowSet can be extracted from the RowSet using one or more
+     * of the query methods available on the RowSet.
+     * 
+     * @param theSource
+     *            the RowSet which generated the event
+     */
+    public RowSetEvent(RowSet theSource) {
+        super(theSource);
+    }
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetEvent.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetInternal.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetInternal.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetInternal.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetInternal.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,86 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.SQLException;
+import java.sql.Connection;
+import java.sql.ResultSet;
+
+/**
+ * An interface provided by a RowSet object to either a RowSetReader or a
+ * RowSetWriter, providing facilities to read and update the internal state of
+ * the RowSet.
+ */
+public interface RowSetInternal {
+
+    /**
+     * Gets the Connection associated with this RowSet object.
+     * 
+     * @return the Connection
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public Connection getConnection() throws SQLException;
+
+    /**
+     * Gets the ResultSet that was the original (unmodified) content of the
+     * RowSet.
+     * <p>
+     * The ResultSet cursor is positioned before the first row of data
+     * 
+     * @return the ResultSet that contained the original data value of the
+     *         RowSet
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public ResultSet getOriginal() throws SQLException;
+
+    /**
+     * Gets the original value of the current row only. If the current row did
+     * not have an original value, then an empty value is returned.
+     * 
+     * @return a ResultSet containing the value of the current row only.
+     * @throws SQLException
+     *             if there is a problem accessing the database, or if the
+     *             cursor is not on a valid row (before first, after last or
+     *             pointing to the insert row).
+     */
+    public ResultSet getOriginalRow() throws SQLException;
+
+    /**
+     * Gets the parameter values that have been set for this RowSet's command.
+     * 
+     * @return an Object array containing the values of parameters that have
+     *         been set.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public Object[] getParams() throws SQLException;
+
+    /**
+     * Sets RowSetMetaData for this RowSet. The RowSetMetaData is used by a
+     * RowSetReader to set values giving information about the RowSet's columns.
+     * 
+     * @param theMetaData
+     *            a RowSetMetaData holding the metadata about the RowSet's
+     *            columns.
+     * @throws SQLException
+     *             if there is a problem accessing the database.
+     */
+    public void setMetaData(RowSetMetaData theMetaData) throws SQLException;
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetInternal.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetListener.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetListener.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetListener.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetListener.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,62 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.util.EventListener;
+
+/**
+ * An interface used to send notification of events occurring in a RowSet. To
+ * receive the notification events, an object must implement the RowSetListener
+ * interface and then register itself with the RowSet of interest using the
+ * <code>RowSet.addRowSetListener</code> method.
+ */
+public interface RowSetListener extends EventListener {
+
+    /**
+     * Notifies the listener that one of the RowSet's rows has changed.
+     * 
+     * @param theEvent
+     *            a RowSetEvent that contains information about the RowSet
+     *            involved. This information can be used to retrieve information
+     *            about the change, such as the new cursor position.
+     */
+    public void cursorMoved(RowSetEvent theEvent);
+
+    /**
+     * Notifies the listener that the RowSet's cursor has moved.
+     * 
+     * @param theEvent
+     *            theEvent a RowSetEvent that contains information about the
+     *            RowSet involved. This information can be used to retrieve
+     *            information about the change, such as the updated data values.
+     */
+    public void rowChanged(RowSetEvent theEvent);
+
+    /**
+     * Notifies the listener that the RowSet's entire contents have been updated
+     * (an example is the execution of a command which retrieves new data from
+     * the database).
+     * 
+     * @param theEvent
+     *            theEvent a RowSetEvent that contains information about the
+     *            RowSet involved. This information can be used to retrieve
+     *            information about the change, such as the updated rows of
+     *            data.
+     */
+    public void rowSetChanged(RowSetEvent theEvent);
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetListener.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetMetaData.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetMetaData.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetMetaData.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetMetaData.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,283 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.ResultSetMetaData;
+import java.sql.SQLException;
+
+/**
+ * An interface which provides facilities for getting information about the
+ * columns in a RowSet.
+ * <p>
+ * RowSetMetaData extends ResultSetMetaData, adding new operations for carrying
+ * out value sets.
+ * <p>
+ * Application code would not normally call this interface directly. It would be
+ * called internally when <code>RowSet.execute</code> is called.
+ */
+public interface RowSetMetaData extends ResultSetMetaData {
+
+    /**
+     * Sets automatic numbering for a specified column in the RowSet. If
+     * automatic numbering is on, the column is read only. The default value is
+     * for automatic numbering to be off.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param autoIncrement
+     *            true to set automatic numbering on, false to turn it off.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setAutoIncrement(int columnIndex, boolean autoIncrement)
+            throws SQLException;
+
+    /**
+     * Sets the case sensitive property for a specified column in the RowSet.
+     * The default is that the column is not case sensitive.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param caseSensitive
+     *            true to make the column case sensitive, false to make it not
+     *            case sensitive.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setCaseSensitive(int columnIndex, boolean caseSensitive)
+            throws SQLException;
+
+    /**
+     * Sets the Catalog Name for a specified column in the RowSet.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param catalogName
+     *            a string containing the new Catalog Name
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setCatalogName(int columnIndex, String catalogName)
+            throws SQLException;
+
+    /**
+     * Sets the number of columns in the Row Set.
+     * 
+     * @param columnCount
+     *            an integer containing the number of columns in the RowSet.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setColumnCount(int columnCount) throws SQLException;
+
+    /**
+     * Sets the normal maximum width in characters for a specified column in the
+     * RowSet.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param displaySize
+     *            an integer with the normal maximum column width in characters
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setColumnDisplaySize(int columnIndex, int displaySize)
+            throws SQLException;
+
+    /**
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theLabel
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setColumnLabel(int columnIndex, String theLabel)
+            throws SQLException;
+
+    /**
+     * Sets the suggested column label for a specified column in the RowSet.
+     * This label is typically used in displaying or printing the column.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theColumnName
+     *            a string containing the column label
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setColumnName(int columnIndex, String theColumnName)
+            throws SQLException;
+
+    /**
+     * Sets the SQL type for a specified column in the RowSet
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theSQLType
+     *            an integer containing the SQL Type, as defined by
+     *            java.sql.Types.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setColumnType(int columnIndex, int theSQLType)
+            throws SQLException;
+
+    /**
+     * Sets the Type Name for a specified column in the RowSet, where the data
+     * type is specific to the datasource.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theTypeName
+     *            a string containing the Type Name for the column
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setColumnTypeName(int columnIndex, String theTypeName)
+            throws SQLException;
+
+    /**
+     * Sets whether a specified column is a currency value.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param isCurrency
+     *            true if the column should be treated as a currency value,
+     *            false if it should not be treated as a currency value.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setCurrency(int columnIndex, boolean isCurrency)
+            throws SQLException;
+
+    /**
+     * Sets whether a specified column can contain SQL NULL values.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param nullability
+     *            an integer which is one of the following values:
+     *            ResultSetMetaData.columnNoNulls,
+     *            ResultSetMetaData.columnNullable, or
+     *            ResultSetMetaData.columnNullableUnknown
+     *            <p>
+     *            The default value is ResultSetMetaData.columnNullableUnknown
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setNullable(int columnIndex, int nullability)
+            throws SQLException;
+
+    /**
+     * Sets the number of decimal digits for a specified column in the RowSet.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param thePrecision
+     *            an integer containing the number of decimal digits
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setPrecision(int columnIndex, int thePrecision)
+            throws SQLException;
+
+    /**
+     * For the column specified by <code>columnIndex</code> declares how many
+     * digits there should be after a decimal point.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theScale
+     *            an integer containing the number of digits after the decimal
+     *            point
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setScale(int columnIndex, int theScale) throws SQLException;
+
+    /**
+     * Sets the Schema Name for a specified column in the RowSet
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theSchemaName
+     *            a String containing the schema name
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setSchemaName(int columnIndex, String theSchemaName)
+            throws SQLException;
+
+    /**
+     * Sets whether a specified column can be used in a search involving a WHERE
+     * clause. The default value is false.
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param isSearchable
+     *            true of the column can be used in a WHERE clause search, false
+     *            otherwise.
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setSearchable(int columnIndex, boolean isSearchable)
+            throws SQLException;
+
+    /**
+     * Sets if a specified column can contain signed numbers
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param isSigned
+     *            true if the column can contain signed numbers, false otherwise
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setSigned(int columnIndex, boolean isSigned)
+            throws SQLException;
+
+    /**
+     * Sets the Table Name for a specified column in the RowSet
+     * 
+     * @param columnIndex
+     *            the index number for the column, where the first column has
+     *            index 1.
+     * @param theTableName
+     *            a String containing the Table Name for the column
+     * @throws SQLException
+     *             if a problem occurs accessing the database
+     */
+    public void setTableName(int columnIndex, String theTableName)
+            throws SQLException;
+}

Propchange: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetMetaData.java
------------------------------------------------------------------------------
    svn:eol-style = native

Added: db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetReader.java
URL: http://svn.apache.org/viewvc/db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetReader.java?rev=724735&view=auto
==============================================================================
--- db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetReader.java (added)
+++ db/derby/code/trunk/java/stubs/jdbc3/javax/sql/RowSetReader.java Tue Dec  9 07:06:09 2008
@@ -0,0 +1,50 @@
+/* 
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ * 
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package javax.sql;
+
+import java.sql.SQLException;
+
+/**
+ * An interface which provides functionality for a disconnected RowSet to get
+ * data from a data source into its rows. The RowSet calls the RowSetReader
+ * interface when the RowSet's execute method is invoked - a RowSetReader must
+ * first be registered with the RowSet for this to work.
+ */
+public interface RowSetReader {
+
+    /**
+     * Reads new data into the RowSet. The calling RowSet object must itself
+     * implement the RowSetInternal interface and the RowSetReader must be
+     * registered as a Reader on the RowSet.
+     * <p>
+     * This method adds rows into the calling RowSet. The Reader may invoke any
+     * of the RowSet's methods except for the <code>execute</code> method
+     * (calling execute will cause an SQLException to be thrown). However, when
+     * the Reader calls the RowSet's methods, no events are sent to listeners -
+     * any listeners are informed by the calling RowSet's execute method once
+     * the Reader returns from the readData method.
+     * 
+     * @param theCaller
+     *            must be the calling RowSet object, which must have implemented
+     *            the RowSetInternal interface.
+     * @throws SQLException
+     *             if a problem occurs accessing the database or if the Reader
+     *             calls the RowSet.execute method.
+     */
+    public void readData(RowSetInternal theCaller) throws SQLException;
+}



Mime
View raw message