mirror of git://gcc.gnu.org/git/gcc.git
ObjectStreamException.java: New file.
* java/io/ObjectStreamException.java: New file. * java/io/OptionalDataException.java: New file. * java/io/StreamCorruptedException.java: New file. * java/math/BigDecimal.java: New file. * java/sql/CallableStatement.java: New file. * java/sql/Connection.java: New file. * java/sql/DataTruncation.java: New file. * java/sql/DatabaseMetaData.java: New file. * java/sql/Date.java: New file. * java/sql/Driver.java: New file. * java/sql/DriverManager.java: New file. * java/sql/DriverPropertyInfo.java: New file. * java/sql/PreparedStatement.java: New file. * java/sql/ResultSet.java: New file. * java/sql/ResultSetMetaData.java: New file. * java/sql/SQLException.java: New file. * java/sql/SQLWarning.java: New file. * java/sql/Statement.java: New file. * java/sql/Time.java: New file. * java/sql/Timestamp.java: New file. * java/sql/Types.java: New file. * Makefile.am: Added above new files. * Makefile.in: Rebuilt. * mauve-libgcj: Turned on java.math, java.sql and java.security tests. * java/net/MulticastSocket.java (MulticastSocket): Pass values a la DatagramSocket constructor instead of null. java.sql is JDK 1.1 Compliant From-SVN: r33077
This commit is contained in:
parent
3a2b2c7a20
commit
d0123c54ca
|
@ -1,3 +1,33 @@
|
||||||
|
2000-04-10 Warren Levy <warrenl@cygnus.com>
|
||||||
|
|
||||||
|
* java/io/ObjectStreamException.java: New file.
|
||||||
|
* java/io/OptionalDataException.java: New file.
|
||||||
|
* java/io/StreamCorruptedException.java: New file.
|
||||||
|
* java/math/BigDecimal.java: New file.
|
||||||
|
* java/sql/CallableStatement.java: New file.
|
||||||
|
* java/sql/Connection.java: New file.
|
||||||
|
* java/sql/DataTruncation.java: New file.
|
||||||
|
* java/sql/DatabaseMetaData.java: New file.
|
||||||
|
* java/sql/Date.java: New file.
|
||||||
|
* java/sql/Driver.java: New file.
|
||||||
|
* java/sql/DriverManager.java: New file.
|
||||||
|
* java/sql/DriverPropertyInfo.java: New file.
|
||||||
|
* java/sql/PreparedStatement.java: New file.
|
||||||
|
* java/sql/ResultSet.java: New file.
|
||||||
|
* java/sql/ResultSetMetaData.java: New file.
|
||||||
|
* java/sql/SQLException.java: New file.
|
||||||
|
* java/sql/SQLWarning.java: New file.
|
||||||
|
* java/sql/Statement.java: New file.
|
||||||
|
* java/sql/Time.java: New file.
|
||||||
|
* java/sql/Timestamp.java: New file.
|
||||||
|
* java/sql/Types.java: New file.
|
||||||
|
* Makefile.am: Added above new files.
|
||||||
|
* Makefile.in: Rebuilt.
|
||||||
|
|
||||||
|
* mauve-libgcj: Turned on java.math, java.sql and java.security tests.
|
||||||
|
* java/net/MulticastSocket.java (MulticastSocket): Pass values a la
|
||||||
|
DatagramSocket constructor instead of null.
|
||||||
|
|
||||||
2000-04-08 Anthony Green <green@cygnus.com>
|
2000-04-08 Anthony Green <green@cygnus.com>
|
||||||
|
|
||||||
* include/posix-threads.h (_Jv_MutexUnlock): Replace
|
* include/posix-threads.h (_Jv_MutexUnlock): Replace
|
||||||
|
|
|
@ -632,6 +632,8 @@ java/io/InputStreamReader.java \
|
||||||
java/io/InterruptedIOException.java \
|
java/io/InterruptedIOException.java \
|
||||||
java/io/LineNumberInputStream.java \
|
java/io/LineNumberInputStream.java \
|
||||||
java/io/LineNumberReader.java \
|
java/io/LineNumberReader.java \
|
||||||
|
java/io/ObjectStreamException.java \
|
||||||
|
java/io/OptionalDataException.java \
|
||||||
java/io/OutputStream.java \
|
java/io/OutputStream.java \
|
||||||
java/io/OutputStreamWriter.java \
|
java/io/OutputStreamWriter.java \
|
||||||
java/io/PipedInputStream.java \
|
java/io/PipedInputStream.java \
|
||||||
|
@ -646,6 +648,7 @@ java/io/RandomAccessFile.java \
|
||||||
java/io/Reader.java \
|
java/io/Reader.java \
|
||||||
java/io/SequenceInputStream.java \
|
java/io/SequenceInputStream.java \
|
||||||
java/io/Serializable.java \
|
java/io/Serializable.java \
|
||||||
|
java/io/StreamCorruptedException.java \
|
||||||
java/io/StreamTokenizer.java \
|
java/io/StreamTokenizer.java \
|
||||||
java/io/StringBufferInputStream.java \
|
java/io/StringBufferInputStream.java \
|
||||||
java/io/StringReader.java \
|
java/io/StringReader.java \
|
||||||
|
@ -731,6 +734,7 @@ java/lang/reflect/InvocationTargetException.java \
|
||||||
java/lang/reflect/Member.java \
|
java/lang/reflect/Member.java \
|
||||||
java/lang/reflect/Method.java \
|
java/lang/reflect/Method.java \
|
||||||
java/lang/reflect/Modifier.java \
|
java/lang/reflect/Modifier.java \
|
||||||
|
java/math/BigDecimal.java \
|
||||||
java/math/BigInteger.java \
|
java/math/BigInteger.java \
|
||||||
java/net/BindException.java \
|
java/net/BindException.java \
|
||||||
java/net/ConnectException.java \
|
java/net/ConnectException.java \
|
||||||
|
@ -800,6 +804,23 @@ java/security/spec/KeySpec.java \
|
||||||
java/security/spec/RSAPrivateCrtKeySpec.java \
|
java/security/spec/RSAPrivateCrtKeySpec.java \
|
||||||
java/security/spec/RSAPrivateKeySpec.java \
|
java/security/spec/RSAPrivateKeySpec.java \
|
||||||
java/security/spec/RSAPublicKeySpec.java \
|
java/security/spec/RSAPublicKeySpec.java \
|
||||||
|
java/sql/CallableStatement.java \
|
||||||
|
java/sql/Connection.java \
|
||||||
|
java/sql/DataTruncation.java \
|
||||||
|
java/sql/DatabaseMetaData.java \
|
||||||
|
java/sql/Date.java \
|
||||||
|
java/sql/Driver.java \
|
||||||
|
java/sql/DriverManager.java \
|
||||||
|
java/sql/DriverPropertyInfo.java \
|
||||||
|
java/sql/PreparedStatement.java \
|
||||||
|
java/sql/ResultSet.java \
|
||||||
|
java/sql/ResultSetMetaData.java \
|
||||||
|
java/sql/SQLException.java \
|
||||||
|
java/sql/SQLWarning.java \
|
||||||
|
java/sql/Statement.java \
|
||||||
|
java/sql/Time.java \
|
||||||
|
java/sql/Timestamp.java \
|
||||||
|
java/sql/Types.java \
|
||||||
java/text/BreakIterator.java \
|
java/text/BreakIterator.java \
|
||||||
java/text/CharacterIterator.java \
|
java/text/CharacterIterator.java \
|
||||||
java/text/ChoiceFormat.java \
|
java/text/ChoiceFormat.java \
|
||||||
|
|
|
@ -84,6 +84,7 @@ GCOBJS = @GCOBJS@
|
||||||
GCSPEC = @GCSPEC@
|
GCSPEC = @GCSPEC@
|
||||||
GCTESTSPEC = @GCTESTSPEC@
|
GCTESTSPEC = @GCTESTSPEC@
|
||||||
INCLTDL = @INCLTDL@
|
INCLTDL = @INCLTDL@
|
||||||
|
LD = @LD@
|
||||||
LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
|
LIBDATASTARTSPEC = @LIBDATASTARTSPEC@
|
||||||
LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
|
LIBGCJTESTSPEC = @LIBGCJTESTSPEC@
|
||||||
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
|
LIBGCJ_CFLAGS = @LIBGCJ_CFLAGS@
|
||||||
|
@ -94,7 +95,6 @@ LIBTOOL = @LIBTOOL@
|
||||||
LN_S = @LN_S@
|
LN_S = @LN_S@
|
||||||
MAINT = @MAINT@
|
MAINT = @MAINT@
|
||||||
MAKEINFO = @MAKEINFO@
|
MAKEINFO = @MAKEINFO@
|
||||||
OBJDUMP = @OBJDUMP@
|
|
||||||
PACKAGE = @PACKAGE@
|
PACKAGE = @PACKAGE@
|
||||||
PERL = @PERL@
|
PERL = @PERL@
|
||||||
RANLIB = @RANLIB@
|
RANLIB = @RANLIB@
|
||||||
|
@ -104,6 +104,7 @@ THREADINCS = @THREADINCS@
|
||||||
THREADLIBS = @THREADLIBS@
|
THREADLIBS = @THREADLIBS@
|
||||||
THREADOBJS = @THREADOBJS@
|
THREADOBJS = @THREADOBJS@
|
||||||
THREADSPEC = @THREADSPEC@
|
THREADSPEC = @THREADSPEC@
|
||||||
|
USE_SYMBOL_UNDERSCORE = @USE_SYMBOL_UNDERSCORE@
|
||||||
VERSION = @VERSION@
|
VERSION = @VERSION@
|
||||||
ZDEPS = @ZDEPS@
|
ZDEPS = @ZDEPS@
|
||||||
ZINCS = @ZINCS@
|
ZINCS = @ZINCS@
|
||||||
|
@ -433,6 +434,8 @@ java/io/InputStreamReader.java \
|
||||||
java/io/InterruptedIOException.java \
|
java/io/InterruptedIOException.java \
|
||||||
java/io/LineNumberInputStream.java \
|
java/io/LineNumberInputStream.java \
|
||||||
java/io/LineNumberReader.java \
|
java/io/LineNumberReader.java \
|
||||||
|
java/io/ObjectStreamException.java \
|
||||||
|
java/io/OptionalDataException.java \
|
||||||
java/io/OutputStream.java \
|
java/io/OutputStream.java \
|
||||||
java/io/OutputStreamWriter.java \
|
java/io/OutputStreamWriter.java \
|
||||||
java/io/PipedInputStream.java \
|
java/io/PipedInputStream.java \
|
||||||
|
@ -447,6 +450,7 @@ java/io/RandomAccessFile.java \
|
||||||
java/io/Reader.java \
|
java/io/Reader.java \
|
||||||
java/io/SequenceInputStream.java \
|
java/io/SequenceInputStream.java \
|
||||||
java/io/Serializable.java \
|
java/io/Serializable.java \
|
||||||
|
java/io/StreamCorruptedException.java \
|
||||||
java/io/StreamTokenizer.java \
|
java/io/StreamTokenizer.java \
|
||||||
java/io/StringBufferInputStream.java \
|
java/io/StringBufferInputStream.java \
|
||||||
java/io/StringReader.java \
|
java/io/StringReader.java \
|
||||||
|
@ -532,6 +536,7 @@ java/lang/reflect/InvocationTargetException.java \
|
||||||
java/lang/reflect/Member.java \
|
java/lang/reflect/Member.java \
|
||||||
java/lang/reflect/Method.java \
|
java/lang/reflect/Method.java \
|
||||||
java/lang/reflect/Modifier.java \
|
java/lang/reflect/Modifier.java \
|
||||||
|
java/math/BigDecimal.java \
|
||||||
java/math/BigInteger.java \
|
java/math/BigInteger.java \
|
||||||
java/net/BindException.java \
|
java/net/BindException.java \
|
||||||
java/net/ConnectException.java \
|
java/net/ConnectException.java \
|
||||||
|
@ -601,6 +606,23 @@ java/security/spec/KeySpec.java \
|
||||||
java/security/spec/RSAPrivateCrtKeySpec.java \
|
java/security/spec/RSAPrivateCrtKeySpec.java \
|
||||||
java/security/spec/RSAPrivateKeySpec.java \
|
java/security/spec/RSAPrivateKeySpec.java \
|
||||||
java/security/spec/RSAPublicKeySpec.java \
|
java/security/spec/RSAPublicKeySpec.java \
|
||||||
|
java/sql/CallableStatement.java \
|
||||||
|
java/sql/Connection.java \
|
||||||
|
java/sql/DataTruncation.java \
|
||||||
|
java/sql/DatabaseMetaData.java \
|
||||||
|
java/sql/Date.java \
|
||||||
|
java/sql/Driver.java \
|
||||||
|
java/sql/DriverManager.java \
|
||||||
|
java/sql/DriverPropertyInfo.java \
|
||||||
|
java/sql/PreparedStatement.java \
|
||||||
|
java/sql/ResultSet.java \
|
||||||
|
java/sql/ResultSetMetaData.java \
|
||||||
|
java/sql/SQLException.java \
|
||||||
|
java/sql/SQLWarning.java \
|
||||||
|
java/sql/Statement.java \
|
||||||
|
java/sql/Time.java \
|
||||||
|
java/sql/Timestamp.java \
|
||||||
|
java/sql/Types.java \
|
||||||
java/text/BreakIterator.java \
|
java/text/BreakIterator.java \
|
||||||
java/text/CharacterIterator.java \
|
java/text/CharacterIterator.java \
|
||||||
java/text/ChoiceFormat.java \
|
java/text/ChoiceFormat.java \
|
||||||
|
@ -833,7 +855,7 @@ libgcj.spec.in
|
||||||
|
|
||||||
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
DISTFILES = $(DIST_COMMON) $(SOURCES) $(HEADERS) $(TEXINFOS) $(EXTRA_DIST)
|
||||||
|
|
||||||
TAR = tar
|
TAR = gtar
|
||||||
GZIP_ENV = --best
|
GZIP_ENV = --best
|
||||||
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
|
DIST_SUBDIRS = @DIRLTDL@ testsuite gcj include @DIRLTDL@ gcj include
|
||||||
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||||
|
@ -931,13 +953,15 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||||
.deps/java/io/InputStream.P .deps/java/io/InputStreamReader.P \
|
.deps/java/io/InputStream.P .deps/java/io/InputStreamReader.P \
|
||||||
.deps/java/io/InterruptedIOException.P \
|
.deps/java/io/InterruptedIOException.P \
|
||||||
.deps/java/io/LineNumberInputStream.P .deps/java/io/LineNumberReader.P \
|
.deps/java/io/LineNumberInputStream.P .deps/java/io/LineNumberReader.P \
|
||||||
.deps/java/io/OutputStream.P .deps/java/io/OutputStreamWriter.P \
|
.deps/java/io/ObjectStreamException.P \
|
||||||
.deps/java/io/PipedInputStream.P .deps/java/io/PipedOutputStream.P \
|
.deps/java/io/OptionalDataException.P .deps/java/io/OutputStream.P \
|
||||||
.deps/java/io/PipedReader.P .deps/java/io/PipedWriter.P \
|
.deps/java/io/OutputStreamWriter.P .deps/java/io/PipedInputStream.P \
|
||||||
.deps/java/io/PrintStream.P .deps/java/io/PrintWriter.P \
|
.deps/java/io/PipedOutputStream.P .deps/java/io/PipedReader.P \
|
||||||
.deps/java/io/PushbackInputStream.P .deps/java/io/PushbackReader.P \
|
.deps/java/io/PipedWriter.P .deps/java/io/PrintStream.P \
|
||||||
.deps/java/io/RandomAccessFile.P .deps/java/io/Reader.P \
|
.deps/java/io/PrintWriter.P .deps/java/io/PushbackInputStream.P \
|
||||||
.deps/java/io/SequenceInputStream.P .deps/java/io/Serializable.P \
|
.deps/java/io/PushbackReader.P .deps/java/io/RandomAccessFile.P \
|
||||||
|
.deps/java/io/Reader.P .deps/java/io/SequenceInputStream.P \
|
||||||
|
.deps/java/io/Serializable.P .deps/java/io/StreamCorruptedException.P \
|
||||||
.deps/java/io/StreamTokenizer.P .deps/java/io/StringBufferInputStream.P \
|
.deps/java/io/StreamTokenizer.P .deps/java/io/StringBufferInputStream.P \
|
||||||
.deps/java/io/StringReader.P .deps/java/io/StringWriter.P \
|
.deps/java/io/StringReader.P .deps/java/io/StringWriter.P \
|
||||||
.deps/java/io/SyncFailedException.P \
|
.deps/java/io/SyncFailedException.P \
|
||||||
|
@ -1015,12 +1039,13 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||||
.deps/java/lang/w_exp.P .deps/java/lang/w_fmod.P \
|
.deps/java/lang/w_exp.P .deps/java/lang/w_fmod.P \
|
||||||
.deps/java/lang/w_log.P .deps/java/lang/w_pow.P \
|
.deps/java/lang/w_log.P .deps/java/lang/w_pow.P \
|
||||||
.deps/java/lang/w_remainder.P .deps/java/lang/w_sqrt.P \
|
.deps/java/lang/w_remainder.P .deps/java/lang/w_sqrt.P \
|
||||||
.deps/java/math/BigInteger.P .deps/java/net/BindException.P \
|
.deps/java/math/BigDecimal.P .deps/java/math/BigInteger.P \
|
||||||
.deps/java/net/ConnectException.P .deps/java/net/ContentHandler.P \
|
.deps/java/net/BindException.P .deps/java/net/ConnectException.P \
|
||||||
.deps/java/net/ContentHandlerFactory.P .deps/java/net/DatagramPacket.P \
|
.deps/java/net/ContentHandler.P .deps/java/net/ContentHandlerFactory.P \
|
||||||
.deps/java/net/DatagramSocket.P .deps/java/net/DatagramSocketImpl.P \
|
.deps/java/net/DatagramPacket.P .deps/java/net/DatagramSocket.P \
|
||||||
.deps/java/net/FileNameMap.P .deps/java/net/HttpURLConnection.P \
|
.deps/java/net/DatagramSocketImpl.P .deps/java/net/FileNameMap.P \
|
||||||
.deps/java/net/InetAddress.P .deps/java/net/JarURLConnection.P \
|
.deps/java/net/HttpURLConnection.P .deps/java/net/InetAddress.P \
|
||||||
|
.deps/java/net/JarURLConnection.P \
|
||||||
.deps/java/net/MalformedURLException.P .deps/java/net/MulticastSocket.P \
|
.deps/java/net/MalformedURLException.P .deps/java/net/MulticastSocket.P \
|
||||||
.deps/java/net/NoRouteToHostException.P \
|
.deps/java/net/NoRouteToHostException.P \
|
||||||
.deps/java/net/PlainDatagramSocketImpl.P \
|
.deps/java/net/PlainDatagramSocketImpl.P \
|
||||||
|
@ -1065,6 +1090,14 @@ DEP_FILES = .deps/$(srcdir)/$(CONVERT_DIR)/gen-from-JIS.P \
|
||||||
.deps/java/security/spec/RSAPrivateCrtKeySpec.P \
|
.deps/java/security/spec/RSAPrivateCrtKeySpec.P \
|
||||||
.deps/java/security/spec/RSAPrivateKeySpec.P \
|
.deps/java/security/spec/RSAPrivateKeySpec.P \
|
||||||
.deps/java/security/spec/RSAPublicKeySpec.P \
|
.deps/java/security/spec/RSAPublicKeySpec.P \
|
||||||
|
.deps/java/sql/CallableStatement.P .deps/java/sql/Connection.P \
|
||||||
|
.deps/java/sql/DataTruncation.P .deps/java/sql/DatabaseMetaData.P \
|
||||||
|
.deps/java/sql/Date.P .deps/java/sql/Driver.P \
|
||||||
|
.deps/java/sql/DriverManager.P .deps/java/sql/DriverPropertyInfo.P \
|
||||||
|
.deps/java/sql/PreparedStatement.P .deps/java/sql/ResultSet.P \
|
||||||
|
.deps/java/sql/ResultSetMetaData.P .deps/java/sql/SQLException.P \
|
||||||
|
.deps/java/sql/SQLWarning.P .deps/java/sql/Statement.P \
|
||||||
|
.deps/java/sql/Time.P .deps/java/sql/Timestamp.P .deps/java/sql/Types.P \
|
||||||
.deps/java/text/BreakIterator.P .deps/java/text/CharacterIterator.P \
|
.deps/java/text/BreakIterator.P .deps/java/text/CharacterIterator.P \
|
||||||
.deps/java/text/ChoiceFormat.P \
|
.deps/java/text/ChoiceFormat.P \
|
||||||
.deps/java/text/CollationElementIterator.P \
|
.deps/java/text/CollationElementIterator.P \
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
/* Copyright (C) 2000 Free Software Foundation
|
||||||
|
|
||||||
|
This file is part of libgcj.
|
||||||
|
|
||||||
|
This software is copyrighted work licensed under the terms of the
|
||||||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||||
|
details. */
|
||||||
|
|
||||||
|
package java.io;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Warren Levy <warrenl@cygnus.com>
|
||||||
|
* @date February 7, 2000.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Written using on-line Java Platform 1.2 API Specification.
|
||||||
|
* Status: Believed complete and correct.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public abstract class ObjectStreamException extends IOException
|
||||||
|
{
|
||||||
|
public ObjectStreamException()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public ObjectStreamException(String msg)
|
||||||
|
{
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
/* Copyright (C) 2000 Free Software Foundation
|
||||||
|
|
||||||
|
This file is part of libgcj.
|
||||||
|
|
||||||
|
This software is copyrighted work licensed under the terms of the
|
||||||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||||
|
details. */
|
||||||
|
|
||||||
|
package java.io;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Warren Levy <warrenl@cygnus.com>
|
||||||
|
* @date February 7, 2000.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Written using on-line Java Platform 1.2 API Specification.
|
||||||
|
* Status: Believed complete and correct.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class OptionalDataException extends ObjectStreamException
|
||||||
|
{
|
||||||
|
public OptionalDataException()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public OptionalDataException(String msg)
|
||||||
|
{
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,31 @@
|
||||||
|
/* Copyright (C) 2000 Free Software Foundation
|
||||||
|
|
||||||
|
This file is part of libgcj.
|
||||||
|
|
||||||
|
This software is copyrighted work licensed under the terms of the
|
||||||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||||
|
details. */
|
||||||
|
|
||||||
|
package java.io;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Warren Levy <warrenl@cygnus.com>
|
||||||
|
* @date February 7, 2000.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* Written using on-line Java Platform 1.2 API Specification.
|
||||||
|
* Status: Believed complete and correct.
|
||||||
|
*/
|
||||||
|
|
||||||
|
public class StreamCorruptedException extends ObjectStreamException
|
||||||
|
{
|
||||||
|
public StreamCorruptedException()
|
||||||
|
{
|
||||||
|
super();
|
||||||
|
}
|
||||||
|
|
||||||
|
public StreamCorruptedException(String msg)
|
||||||
|
{
|
||||||
|
super(msg);
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,348 @@
|
||||||
|
/* java.math.BigDecimal -- Arbitrary precision decimals.
|
||||||
|
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
package java.math;
|
||||||
|
|
||||||
|
import java.math.BigInteger;
|
||||||
|
|
||||||
|
public class BigDecimal extends Number implements Comparable {
|
||||||
|
BigInteger num;
|
||||||
|
int scale;
|
||||||
|
|
||||||
|
private final static BigDecimal ZERO =
|
||||||
|
new BigDecimal (BigInteger.valueOf (0), 0);
|
||||||
|
|
||||||
|
private final static BigDecimal ONE =
|
||||||
|
new BigDecimal (BigInteger.valueOf (1), 0);
|
||||||
|
|
||||||
|
public final static int ROUND_UP = 0;
|
||||||
|
public final static int ROUND_DOWN = 1;
|
||||||
|
public final static int ROUND_CEILING = 2;
|
||||||
|
public final static int ROUND_FLOOR = 3;
|
||||||
|
public final static int ROUND_HALF_UP = 4;
|
||||||
|
public final static int ROUND_HALF_DOWN = 5;
|
||||||
|
public final static int ROUND_HALF_EVEN = 6;
|
||||||
|
public final static int ROUND_UNNECESSARY = 7;
|
||||||
|
|
||||||
|
public BigDecimal (BigInteger num)
|
||||||
|
{
|
||||||
|
this (num, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal (BigInteger num, int scale) throws NumberFormatException
|
||||||
|
{
|
||||||
|
if (scale < 0)
|
||||||
|
throw new NumberFormatException ("scale of " + scale + " is < 0");
|
||||||
|
this.num = num;
|
||||||
|
this.scale = scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal (double num) throws NumberFormatException
|
||||||
|
{
|
||||||
|
this (Double.toString (num));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal (String num) throws NumberFormatException
|
||||||
|
{
|
||||||
|
int point = num.indexOf('.');
|
||||||
|
this.num = new BigInteger (point == -1 ? num :
|
||||||
|
num.substring (0, point) +
|
||||||
|
num.substring (point + 1));
|
||||||
|
scale = num.length() - (point == -1 ? num.length () : point + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal valueOf (long val)
|
||||||
|
{
|
||||||
|
return valueOf (val, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static BigDecimal valueOf (long val, int scale)
|
||||||
|
throws NumberFormatException
|
||||||
|
{
|
||||||
|
if (scale == 0)
|
||||||
|
switch ((int) val)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
return ZERO;
|
||||||
|
case 1:
|
||||||
|
return ONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return new BigDecimal (BigInteger.valueOf (val), scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal add (BigDecimal val)
|
||||||
|
{
|
||||||
|
// For addition, need to line up decimals. Note that the movePointRight
|
||||||
|
// method cannot be used for this as it might return a BigDecimal with
|
||||||
|
// scale == 0 instead of the scale we need.
|
||||||
|
BigInteger op1 = num;
|
||||||
|
BigInteger op2 = val.num;
|
||||||
|
if (scale < val.scale)
|
||||||
|
op1 = op1.multiply (BigInteger.valueOf (10).pow (val.scale - scale));
|
||||||
|
else if (scale > val.scale)
|
||||||
|
op2 = op2.multiply (BigInteger.valueOf (10).pow (scale - val.scale));
|
||||||
|
|
||||||
|
return new BigDecimal (op1.add (op2), Math.max (scale, val.scale));
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal subtract (BigDecimal val)
|
||||||
|
{
|
||||||
|
return this.add(val.negate());
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal multiply (BigDecimal val)
|
||||||
|
{
|
||||||
|
return new BigDecimal (num.multiply (val.num), scale + val.scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal divide (BigDecimal val, int roundingMode)
|
||||||
|
throws ArithmeticException, IllegalArgumentException
|
||||||
|
{
|
||||||
|
return divide (val, scale, roundingMode);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal divide(BigDecimal val, int newScale, int roundingMode)
|
||||||
|
throws ArithmeticException, IllegalArgumentException
|
||||||
|
{
|
||||||
|
if (roundingMode < 0 || roundingMode > 7)
|
||||||
|
throw
|
||||||
|
new IllegalArgumentException("illegal rounding mode: " + roundingMode);
|
||||||
|
|
||||||
|
if (scale < 0)
|
||||||
|
throw new ArithmeticException ("scale is negative: " + scale);
|
||||||
|
|
||||||
|
if (num.signum () == 0) // handle special case of 0.0/0.0
|
||||||
|
return ZERO;
|
||||||
|
|
||||||
|
BigInteger dividend = num.multiply (BigInteger.valueOf (10).pow
|
||||||
|
(newScale + 1 - (scale - val.scale)));
|
||||||
|
|
||||||
|
BigInteger parts[] = dividend.divideAndRemainder (val.num);
|
||||||
|
// System.out.println("int: " + parts[0]);
|
||||||
|
// System.out.println("rem: " + parts[1]);
|
||||||
|
|
||||||
|
int roundDigit = parts[0].mod (BigInteger.valueOf (10)).intValue ();
|
||||||
|
BigInteger unrounded = parts[0].divide (BigInteger.valueOf (10));
|
||||||
|
|
||||||
|
if (roundDigit == 0 && parts[1].signum () == 0) // no rounding necessary
|
||||||
|
return new BigDecimal (unrounded, newScale);
|
||||||
|
|
||||||
|
int sign = unrounded.signum ();
|
||||||
|
|
||||||
|
switch (roundingMode)
|
||||||
|
{
|
||||||
|
case ROUND_UNNECESSARY:
|
||||||
|
throw new ArithmeticException ("newScale is not large enough");
|
||||||
|
case ROUND_CEILING:
|
||||||
|
roundingMode = (sign == 1) ? ROUND_UP : ROUND_DOWN;
|
||||||
|
break;
|
||||||
|
case ROUND_FLOOR:
|
||||||
|
roundingMode = (sign == 1) ? ROUND_DOWN : ROUND_UP;
|
||||||
|
break;
|
||||||
|
case ROUND_HALF_UP:
|
||||||
|
roundingMode = (roundDigit >= 5) ? ROUND_UP : ROUND_DOWN;
|
||||||
|
break;
|
||||||
|
case ROUND_HALF_DOWN:
|
||||||
|
roundingMode = (roundDigit > 5) ? ROUND_UP : ROUND_DOWN;
|
||||||
|
break;
|
||||||
|
case ROUND_HALF_EVEN:
|
||||||
|
if (roundDigit < 5)
|
||||||
|
roundingMode = ROUND_DOWN;
|
||||||
|
else
|
||||||
|
{
|
||||||
|
int rightmost =
|
||||||
|
unrounded.mod (BigInteger.valueOf (10)).intValue ();
|
||||||
|
if (rightmost % 2 == 1) // odd, then ROUND_HALF_UP
|
||||||
|
roundingMode = ROUND_UP;
|
||||||
|
else // even, then ROUND_HALF_DOWN
|
||||||
|
roundingMode = (roundDigit > 5) ? ROUND_UP : ROUND_DOWN;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (roundingMode == ROUND_UP)
|
||||||
|
return new BigDecimal (unrounded.add (BigInteger.valueOf (1)), newScale);
|
||||||
|
|
||||||
|
// roundingMode == ROUND_DOWN
|
||||||
|
return new BigDecimal (unrounded, newScale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compareTo (BigDecimal val)
|
||||||
|
{
|
||||||
|
if (scale == val.scale)
|
||||||
|
return num.compareTo (val.num);
|
||||||
|
|
||||||
|
BigInteger thisParts[] =
|
||||||
|
num.divideAndRemainder (BigInteger.valueOf (10).pow (scale));
|
||||||
|
BigInteger valParts[] =
|
||||||
|
val.num.divideAndRemainder (BigInteger.valueOf (10).pow (val.scale));
|
||||||
|
|
||||||
|
int compare;
|
||||||
|
if ((compare = thisParts[0].compareTo (valParts[0])) != 0)
|
||||||
|
return compare;
|
||||||
|
|
||||||
|
// quotients are the same, so compare remainders
|
||||||
|
|
||||||
|
// remove trailing zeros
|
||||||
|
if (thisParts[1].equals (BigInteger.valueOf (0)) == false)
|
||||||
|
while (thisParts[1].mod (BigInteger.valueOf (10)).equals
|
||||||
|
(BigInteger.valueOf (0)))
|
||||||
|
thisParts[1] = thisParts[1].divide (BigInteger.valueOf (10));
|
||||||
|
// again...
|
||||||
|
if (valParts[1].equals(BigInteger.valueOf (0)) == false)
|
||||||
|
while (valParts[1].mod (BigInteger.valueOf (10)).equals
|
||||||
|
(BigInteger.valueOf (0)))
|
||||||
|
valParts[1] = valParts[1].divide (BigInteger.valueOf (10));
|
||||||
|
|
||||||
|
// and compare them
|
||||||
|
return thisParts[1].compareTo (valParts[1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int compareTo (Object val)
|
||||||
|
{
|
||||||
|
return(compareTo((BigDecimal)val));
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean equals (Object o)
|
||||||
|
{
|
||||||
|
return (o instanceof BigDecimal
|
||||||
|
&& scale == ((BigDecimal) o).scale
|
||||||
|
&& compareTo ((BigDecimal) o) == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int hashCode()
|
||||||
|
{
|
||||||
|
return intValue() ^ scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal max (BigDecimal val)
|
||||||
|
{
|
||||||
|
switch (compareTo (val))
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
return this;
|
||||||
|
default:
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal min (BigDecimal val)
|
||||||
|
{
|
||||||
|
switch (compareTo (val))
|
||||||
|
{
|
||||||
|
case -1:
|
||||||
|
return this;
|
||||||
|
default:
|
||||||
|
return val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal movePointLeft (int n)
|
||||||
|
{
|
||||||
|
return (n < 0) ? movePointRight (-n) : new BigDecimal (num, scale + n);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal movePointRight (int n)
|
||||||
|
{
|
||||||
|
if (n < 0)
|
||||||
|
return movePointLeft (-n);
|
||||||
|
|
||||||
|
if (scale >= n)
|
||||||
|
return new BigDecimal (num, scale - n);
|
||||||
|
|
||||||
|
return new BigDecimal (num.multiply
|
||||||
|
(BigInteger.valueOf (10).pow (n - scale)), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public int signum ()
|
||||||
|
{
|
||||||
|
return num.signum ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public int scale ()
|
||||||
|
{
|
||||||
|
return scale;
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal abs ()
|
||||||
|
{
|
||||||
|
return new BigDecimal (num.abs (), scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigDecimal negate ()
|
||||||
|
{
|
||||||
|
return new BigDecimal (num.negate (), scale);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String toString ()
|
||||||
|
{
|
||||||
|
String bigStr = num.toString();
|
||||||
|
if (scale == 0)
|
||||||
|
return bigStr;
|
||||||
|
|
||||||
|
int point = bigStr.length() - scale;
|
||||||
|
boolean negative = (bigStr.charAt(0) == '-');
|
||||||
|
StringBuffer sb = new StringBuffer(bigStr.length() + 1 +
|
||||||
|
(point <= 0 ? -point+1 : 0));
|
||||||
|
if (negative)
|
||||||
|
sb.append('-');
|
||||||
|
while (point <= 0)
|
||||||
|
{
|
||||||
|
sb.append('0');
|
||||||
|
point++;
|
||||||
|
}
|
||||||
|
sb.append(bigStr.substring(negative ? 1 : 0));
|
||||||
|
sb.insert(point, '.');
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
public BigInteger toBigInteger ()
|
||||||
|
{
|
||||||
|
return scale == 0 ? num : num.divide (BigInteger.valueOf (10).pow (scale));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public int intValue ()
|
||||||
|
{
|
||||||
|
return toBigInteger ().intValue ();
|
||||||
|
}
|
||||||
|
|
||||||
|
public long longValue ()
|
||||||
|
{
|
||||||
|
return toBigInteger().longValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public float floatValue()
|
||||||
|
{
|
||||||
|
return Float.valueOf(toString()).floatValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
public double doubleValue()
|
||||||
|
{
|
||||||
|
return Double.valueOf(toString()).doubleValue();
|
||||||
|
}
|
||||||
|
}
|
|
@ -30,12 +30,12 @@ public class MulticastSocket extends DatagramSocket
|
||||||
|
|
||||||
public MulticastSocket() throws IOException
|
public MulticastSocket() throws IOException
|
||||||
{
|
{
|
||||||
super(0, null);
|
super(0, ServerSocket.ANY_IF);
|
||||||
}
|
}
|
||||||
|
|
||||||
public MulticastSocket(int port) throws IOException
|
public MulticastSocket(int port) throws IOException
|
||||||
{
|
{
|
||||||
super(port, null);
|
super(port, ServerSocket.ANY_IF);
|
||||||
}
|
}
|
||||||
|
|
||||||
public InetAddress getInterface() throws SocketException
|
public InetAddress getInterface() throws SocketException
|
||||||
|
|
|
@ -0,0 +1,299 @@
|
||||||
|
/* CallableStatement.java -- A statement for calling stored procedures.
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.Calendar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides a mechanism for calling stored procedures.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface CallableStatement extends PreparedStatement
|
||||||
|
{
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether the value of the last parameter that was fetched
|
||||||
|
* was actually a SQL NULL value.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the last parameter fetched was a NULL,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
wasNull() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>String</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>String</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getString(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>Object</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as an <code>Object</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract Object
|
||||||
|
getObject(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>boolean</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>boolean</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
getBoolean(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>byte</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>byte</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract byte
|
||||||
|
getByte(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>short</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>short</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract short
|
||||||
|
getShort(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>int</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>int</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getInt(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>long</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>long</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract long
|
||||||
|
getLong(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>float</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>float</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract float
|
||||||
|
getFloat(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>double</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>double</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract double
|
||||||
|
getDouble(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>BigDecimal</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
* @param scale The number of digits to the right of the decimal to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>BigDecimal</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract BigDecimal
|
||||||
|
getBigDecimal(int index, int scale) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* byte array.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a byte array
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract byte[]
|
||||||
|
getBytes(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>java.sql.Date</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>java.sql.Date</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Date
|
||||||
|
getDate(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>java.sql.Time</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>java.sql.Time</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Time
|
||||||
|
getTime(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified parameter as a Java
|
||||||
|
* <code>java.sql.Timestamp</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to return.
|
||||||
|
*
|
||||||
|
* @return The parameter value as a <code>java.sql.Timestamp</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Timestamp
|
||||||
|
getTimestamp(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method registers the specified parameter as an output parameter
|
||||||
|
* of the specified SQL type.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to register as output.
|
||||||
|
* @param type The SQL type value from <code>Types</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
registerOutParameter(int index, int type) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method registers the specified parameter as an output parameter
|
||||||
|
* of the specified SQL type and scale.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to register as output.
|
||||||
|
* @param type The SQL type value from <code>Types</code>.
|
||||||
|
* @param scale The scale of the value that will be returned.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
registerOutParameter(int index, int type, int scale) throws SQLException;
|
||||||
|
|
||||||
|
} // interface CallableStatement
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,350 @@
|
||||||
|
/* Connection.java -- Manage a database connection.
|
||||||
|
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides methods for managing a connection to a database.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface Connection
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This transaction isolation level indicates that transactions are not
|
||||||
|
* supported.
|
||||||
|
*/
|
||||||
|
public static final int TRANSACTION_NONE = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This transaction isolation level indicates that one transaction can
|
||||||
|
* read modifications by other transactions before the other transactions
|
||||||
|
* have committed their changes. This could result in invalid reads.
|
||||||
|
*/
|
||||||
|
public static final int TRANSACTION_READ_UNCOMMITTED = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This transaction isolation leve indicates that only committed data from
|
||||||
|
* other transactions will be read. If a transaction reads a row, then
|
||||||
|
* another transaction commits a change to that row, the first transaction
|
||||||
|
* would retrieve the changed row on subsequent reads of the same row.
|
||||||
|
*/
|
||||||
|
public static final int TRANSACTION_READ_COMMITTED = 2;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This transaction isolation level indicates that only committed data from
|
||||||
|
* other transactions will be read. It also ensures that data read from
|
||||||
|
* a row will not be different on a subsequent read even if another
|
||||||
|
* transaction commits a change.
|
||||||
|
*/
|
||||||
|
public static final int TRANSACTION_REPEATABLE_READ = 4;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This transaction isolation level indicates that only committed data from
|
||||||
|
* other transactions will be read. It also ensures that data read from
|
||||||
|
* a row will not be different on a subsequent read even if another
|
||||||
|
* transaction commits a change. Additionally, rows modified by other
|
||||||
|
* transactions will not affect the result set returned during subsequent
|
||||||
|
* executions of the same WHERE clause in this transaction.
|
||||||
|
*/
|
||||||
|
public static final int TRANSACTION_SERIALIZABLE = 8;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method creates a new SQL statement. The default result set type
|
||||||
|
* and concurrency will be used.
|
||||||
|
*
|
||||||
|
* @return A new <code>Statement</code> object.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see Statement
|
||||||
|
*/
|
||||||
|
public abstract Statement
|
||||||
|
createStatement() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method creates a new <code>PreparedStatement</code> for the specified
|
||||||
|
* SQL string. This method is designed for use with parameterized
|
||||||
|
* statements. The default result set type and concurrency will be used.
|
||||||
|
*
|
||||||
|
* @param The SQL statement to use in creating this
|
||||||
|
* <code>PreparedStatement</code>.
|
||||||
|
*
|
||||||
|
* @return A new <code>PreparedStatement</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see PreparedStatement
|
||||||
|
*/
|
||||||
|
public abstract PreparedStatement
|
||||||
|
prepareStatement(String sql) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method creates a new <code>CallableStatement</code> for the
|
||||||
|
* specified SQL string. Thie method is designed to be used with
|
||||||
|
* stored procedures. The default result set type and concurrency
|
||||||
|
* will be used.
|
||||||
|
*
|
||||||
|
* @param The SQL statement to use in creating this
|
||||||
|
* <code>CallableStatement</code>.
|
||||||
|
*
|
||||||
|
* @return A new <code>CallableStatement</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see CallableStatement
|
||||||
|
*/
|
||||||
|
public abstract CallableStatement
|
||||||
|
prepareCall(String sql) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method converts the specified generic SQL statement into the
|
||||||
|
* native grammer of the database this object is connected to.
|
||||||
|
*
|
||||||
|
* @param The JDBC generic SQL statement.
|
||||||
|
*
|
||||||
|
* @return The native SQL statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
nativeSQL(String sql) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not auto commit mode is currently enabled.
|
||||||
|
* In auto commit mode, every SQL statement is committed its own transaction.
|
||||||
|
* Otherwise a transaction must be explicitly committed or rolled back.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if auto commit mode is enabled,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see commit
|
||||||
|
* @see rollback
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
getAutoCommit() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method turns auto commit mode on or off. In auto commit mode,
|
||||||
|
* every SQL statement is committed its own transaction. Otherwise a
|
||||||
|
* transaction must be explicitly committed or rolled back.
|
||||||
|
*
|
||||||
|
* @param autoCommit <code>true</code> to enable auto commit mode,
|
||||||
|
* <code>false</code> to disable it.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see commit
|
||||||
|
* @see rollback
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setAutoCommit(boolean autoCommit) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method commits any SQL statements executed on this connection since
|
||||||
|
* the last commit or rollback.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
commit() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method rolls back any SQL statements executed on this connection
|
||||||
|
* since the last commit or rollback.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
rollback() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method immediately closes this database connection.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
close() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not this connection has been closed.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the connection is closed, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isClosed() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the meta data for this database connection.
|
||||||
|
*
|
||||||
|
* @return The meta data for this database.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see DatabaseMetaData
|
||||||
|
*/
|
||||||
|
public abstract DatabaseMetaData
|
||||||
|
getMetaData() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not this connection is in read only mode.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the connection is read only <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isReadOnly() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method turns read only mode on or off. It may not be called while
|
||||||
|
* a transaction is in progress.
|
||||||
|
*
|
||||||
|
* @param readOnly <code>true</code> if this connection is read only,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setReadOnly(boolean readOnly) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the catalog in use by this connection,
|
||||||
|
* if any.
|
||||||
|
*
|
||||||
|
* @return The name of the catalog, or <code>null</code> if one does not
|
||||||
|
* exist or catalogs are not supported by this database.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getCatalog() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the name of the catalog in use by this connection.
|
||||||
|
* Note that this method does nothing if catalogs are not supported by
|
||||||
|
* this database.
|
||||||
|
*
|
||||||
|
* @param catalog The name of the catalog to use for this connection.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setCatalog(String catalog) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the current transaction isolation mode. This will
|
||||||
|
* be one of the constants defined in this interface.
|
||||||
|
*
|
||||||
|
* @return The transaction isolation level.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getTransactionIsolation() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the transaction isolation level using one of the
|
||||||
|
* constants defined in this interface.
|
||||||
|
*
|
||||||
|
* @param level The transaction isolation level to change to; must be
|
||||||
|
* one of the TRANSACTION_* isolation values with the exception of
|
||||||
|
* TRANSACTION_NONE; some databases may not support other values.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setTransactionIsolation(int level) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the first warning that occurred on this connection,
|
||||||
|
* if any. If there were any subsequence warnings, they will be chained
|
||||||
|
* to the first one.
|
||||||
|
*
|
||||||
|
* @return The first <code>SQLWarning</code> that occurred, or
|
||||||
|
* <code>null</code> if there have been no warnings.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract SQLWarning
|
||||||
|
getWarnings() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method clears all warnings that have occurred on this connection.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
clearWarnings() throws SQLException;
|
||||||
|
|
||||||
|
} // interface Connection
|
||||||
|
|
|
@ -0,0 +1,185 @@
|
||||||
|
/* DataTruncation.java -- Warning when data has been truncated.
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This exception is thrown when a piece of data is unexpectedly
|
||||||
|
* truncated in JDBC.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class DataTruncation extends SQLWarning implements java.io.Serializable
|
||||||
|
{
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The original size of the data.
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private int dataSize;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The index of the parameter or column whose value was truncated.
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private int index;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether or not a parameter value was truncated.
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private boolean parameter;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indicates whether or not a data column value was truncated.
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private boolean read;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the size of the data after truncation.
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private int transferSize;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>DataTruncation</code>
|
||||||
|
* with the specified values. The descriptive error message for this
|
||||||
|
* exception will be "Data truncation", the SQL state will be "01004"
|
||||||
|
* and the vendor specific error code will be set to 0.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter or column that was truncated.
|
||||||
|
* @param parameter <code>true</code> if a parameter was truncated,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
* @param read <code>true</code> if a data column was truncated,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
* @param dataSize The original size of the data.
|
||||||
|
* @param transferSize The size of the data after truncation.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
DataTruncation(int index, boolean parameter, boolean read, int dataSize,
|
||||||
|
int transferSize)
|
||||||
|
{
|
||||||
|
super("Data truncation", "01004");
|
||||||
|
|
||||||
|
this.index = index;
|
||||||
|
this.parameter = parameter;
|
||||||
|
this.read = read;
|
||||||
|
this.dataSize = dataSize;
|
||||||
|
this.transferSize = transferSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the index of the column or parameter that was
|
||||||
|
* truncated.
|
||||||
|
*
|
||||||
|
* @return The index of the column or parameter that was truncated.
|
||||||
|
*/
|
||||||
|
public int
|
||||||
|
getIndex()
|
||||||
|
{
|
||||||
|
return(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method determines whether or not it was a parameter that was
|
||||||
|
* truncated.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if a parameter was truncated, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*/
|
||||||
|
public boolean
|
||||||
|
getParameter()
|
||||||
|
{
|
||||||
|
return(parameter);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method determines whether or not it was a column that was
|
||||||
|
* truncated.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if a column was truncated, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*/
|
||||||
|
public boolean
|
||||||
|
getRead()
|
||||||
|
{
|
||||||
|
return(read);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the original size of the parameter or column that
|
||||||
|
* was truncated.
|
||||||
|
*
|
||||||
|
* @return The original size of the parameter or column that was truncated.
|
||||||
|
*/
|
||||||
|
public int
|
||||||
|
getDataSize()
|
||||||
|
{
|
||||||
|
return(dataSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the size of the parameter or column after it was
|
||||||
|
* truncated.
|
||||||
|
*
|
||||||
|
* @return The size of the parameter or column after it was truncated.
|
||||||
|
*/
|
||||||
|
public int
|
||||||
|
getTransferSize()
|
||||||
|
{
|
||||||
|
return(transferSize);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class DataTruncation
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,133 @@
|
||||||
|
/* Date.java -- Wrapper around java.util.Date
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is a wrapper around java.util.Date to allow the JDBC
|
||||||
|
* driver to identify the value as a SQL Date.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class Date extends java.util.Date implements java.io.Serializable
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for parsing and formatting this date.
|
||||||
|
*/
|
||||||
|
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a new instance of this class by parsing a
|
||||||
|
* date in JDBC format into a Java date.
|
||||||
|
*
|
||||||
|
* @param str The string to parse.
|
||||||
|
*
|
||||||
|
* @return The resulting <code>java.sql.Date</code> value.
|
||||||
|
*/
|
||||||
|
public static Date
|
||||||
|
valueOf(String str)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
java.util.Date d = (java.util.Date)sdf.parseObject(str);
|
||||||
|
return(new Date(d.getTime()));
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
return(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of this class with the
|
||||||
|
* specified year, month, and day.
|
||||||
|
*
|
||||||
|
* @param year The year of this date minue 1900.
|
||||||
|
* @param month The month of this date (0-11).
|
||||||
|
* @param day The day of this date (1-31).
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
Date(int year, int month, int day)
|
||||||
|
{
|
||||||
|
super(year, month, day);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of this class with the
|
||||||
|
* specified time value representing the number of seconds since
|
||||||
|
* Jan 1, 1970 at 12:00 midnight GMT.
|
||||||
|
*
|
||||||
|
* @param time The time value to intialize this date to.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
Date(long date)
|
||||||
|
{
|
||||||
|
super(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns this date in JDBC format.
|
||||||
|
*
|
||||||
|
* @return This date as a string.
|
||||||
|
*/
|
||||||
|
public String
|
||||||
|
toString()
|
||||||
|
{
|
||||||
|
return(sdf.format(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class Date
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
/* Driver.java -- A JDBC driver
|
||||||
|
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface specifies a mechanism for accessing a JDBC database
|
||||||
|
* driver. When the class implementing this method is loaded, it should
|
||||||
|
* register an instance of itself with the <code>DriverManager</code> in
|
||||||
|
* a static initializer.
|
||||||
|
* <p>
|
||||||
|
* Because the <code>DriverManager</code> might attempt to use several
|
||||||
|
* drivers to find one that can connect to the requested database,
|
||||||
|
* this driver should not cause large numbers of classes and code to
|
||||||
|
* be loaded. If another driver is the one that ends up performing the
|
||||||
|
* request, any loading done by this driver would be wasted.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface Driver
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the major version number of the driver.
|
||||||
|
*
|
||||||
|
* @return The major version number of the driver.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getMajorVersion();
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the minor version number of the driver.
|
||||||
|
*
|
||||||
|
* @return The minor version number of the driver.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getMinorVersion();
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the driver is JDBC compliant. This
|
||||||
|
* method should only return <code>true</code> if the driver has been
|
||||||
|
* certified as JDBC compliant.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the driver has been certified JDBC compliant,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
jdbcCompliant();
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns an array of possible properties that could be
|
||||||
|
* used to connect to the specified database.
|
||||||
|
*
|
||||||
|
* @param url The URL string of the database to connect to.
|
||||||
|
* @param properties The list of properties the caller is planning to use
|
||||||
|
* to connect to the database.
|
||||||
|
*
|
||||||
|
* @return A list of possible additional properties for a connection to this
|
||||||
|
* database. This list may be empty.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract DriverPropertyInfo[]
|
||||||
|
getPropertyInfo(String url, Properties properties) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the driver believes it can connect to
|
||||||
|
* the specified database. The driver should only test whether it
|
||||||
|
* understands and accepts the URL. It should not necessarily attempt to
|
||||||
|
* probe the database for a connection.
|
||||||
|
*
|
||||||
|
* @param The database URL string.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the drivers can connect to the database,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
acceptsURL(String url) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method connects to the specified database using the connection
|
||||||
|
* properties supplied. If the driver does not understand the database
|
||||||
|
* URL, it should return <code>null</code> instead of throwing an
|
||||||
|
* exception since the <code>DriverManager</code> will probe a driver
|
||||||
|
* in this manner.
|
||||||
|
*
|
||||||
|
* @param url The URL string for this connection.
|
||||||
|
* @param properties The list of database connection properties.
|
||||||
|
*
|
||||||
|
* @return A <code>Connection</code> object for the newly established
|
||||||
|
* connection, or <code>null</code> if the URL is not understood.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract Connection
|
||||||
|
connect(String url, Properties properties) throws SQLException;
|
||||||
|
|
||||||
|
} // interface Driver
|
||||||
|
|
|
@ -0,0 +1,336 @@
|
||||||
|
/* DriverManager.java -- Manage JDBC drivers
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.io.PrintStream;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.Properties;
|
||||||
|
import java.util.StringTokenizer;
|
||||||
|
import java.util.Vector;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class manages the JDBC drivers in the system. It maintains a
|
||||||
|
* registry of drivers and locates the appropriate driver to handle a
|
||||||
|
* JDBC database URL.
|
||||||
|
* <p>
|
||||||
|
* On startup, <code>DriverManager</code> loads all the managers specified
|
||||||
|
* by the system property <code>jdbc.drivers</code>. The value of this
|
||||||
|
* property should be a colon separated list of fully qualified driver
|
||||||
|
* class names. Additional drivers can be loaded at any time by
|
||||||
|
* simply loading the driver class with <code>class.forName(String)</code>.
|
||||||
|
* The driver should automatically register itself in a static
|
||||||
|
* initializer.
|
||||||
|
* <p>
|
||||||
|
* The methods in this class are all <code>static</code>. This class
|
||||||
|
* cannot be instantiated.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class DriverManager
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the log stream for JDBC drivers.
|
||||||
|
*/
|
||||||
|
private static PrintStream log_stream;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the log writer for JDBC drivers.
|
||||||
|
*/
|
||||||
|
private static PrintWriter log_writer;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the login timeout used by JDBC drivers.
|
||||||
|
*/
|
||||||
|
private static int login_timeout;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the list of JDBC drivers that are loaded.
|
||||||
|
*/
|
||||||
|
private static Vector drivers;
|
||||||
|
// Hmm, seems like we might want to do a Hashtable and lookup by something,
|
||||||
|
// but what would it be?
|
||||||
|
|
||||||
|
// Load all drivers on startup
|
||||||
|
static
|
||||||
|
{
|
||||||
|
drivers = new Vector();
|
||||||
|
|
||||||
|
String driver_string = System.getProperty("jdbc.drivers");
|
||||||
|
if (driver_string != null)
|
||||||
|
{
|
||||||
|
StringTokenizer st = new StringTokenizer(driver_string);
|
||||||
|
while (st.hasMoreTokens())
|
||||||
|
{
|
||||||
|
String driver_classname = st.nextToken();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Class.forName(driver_classname); // The driver registers itself
|
||||||
|
}
|
||||||
|
catch (Exception e) { ; } // Ignore not founds
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the login timeout in use by JDBC drivers systemwide.
|
||||||
|
*
|
||||||
|
* @return The login timeout.
|
||||||
|
*/
|
||||||
|
public static int
|
||||||
|
getLoginTimeout()
|
||||||
|
{
|
||||||
|
return(login_timeout);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method set the login timeout used by JDBC drivers. This is a
|
||||||
|
* system-wide parameter that applies to all drivers.
|
||||||
|
*
|
||||||
|
* @param login_timeout The new login timeout value.
|
||||||
|
*/
|
||||||
|
public static void
|
||||||
|
setLoginTimeout(int login_timeout)
|
||||||
|
{
|
||||||
|
DriverManager.login_timeout = login_timeout;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the log stream in use by JDBC.
|
||||||
|
*
|
||||||
|
* @return The log stream in use by JDBC.
|
||||||
|
*
|
||||||
|
* @deprecated Use <code>getLogWriter()</code> instead.
|
||||||
|
*/
|
||||||
|
public static PrintStream
|
||||||
|
getLogStream()
|
||||||
|
{
|
||||||
|
return(log_stream);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the log stream in use by JDBC.
|
||||||
|
*
|
||||||
|
* @param log_stream The log stream in use by JDBC.
|
||||||
|
*
|
||||||
|
* @deprecated Use <code>setLogWriter</code> instead.
|
||||||
|
*/
|
||||||
|
public static void
|
||||||
|
setLogStream(PrintStream log_stream)
|
||||||
|
{
|
||||||
|
DriverManager.log_stream = log_stream;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method prints the specified line to the log stream.
|
||||||
|
*
|
||||||
|
* @param str The string to write to the log stream.
|
||||||
|
*/
|
||||||
|
public static void
|
||||||
|
println(String str)
|
||||||
|
{
|
||||||
|
if (log_stream != null) // Watch for user not using logging
|
||||||
|
log_stream.println(str);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method registers a new driver with the manager. This is normally
|
||||||
|
* called by the driver itself in a static initializer.
|
||||||
|
*
|
||||||
|
* @param driver The new <code>Driver</code> to add.
|
||||||
|
*/
|
||||||
|
public static void
|
||||||
|
registerDriver(Driver driver)
|
||||||
|
{
|
||||||
|
if (!drivers.contains(driver))
|
||||||
|
drivers.addElement(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method de-registers a driver from the manager.
|
||||||
|
*
|
||||||
|
* @param driver The <code>Driver</code> to unregister.
|
||||||
|
*/
|
||||||
|
public static void
|
||||||
|
deregisterDriver(Driver driver)
|
||||||
|
{
|
||||||
|
if (drivers.contains(driver))
|
||||||
|
drivers.removeElement(driver);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a list of all the currently loaded JDBC drivers which
|
||||||
|
* the current caller has access to.
|
||||||
|
*
|
||||||
|
* @return An <code>Enumeration</code> of all currently loaded JDBC drivers.
|
||||||
|
*/
|
||||||
|
public static Enumeration
|
||||||
|
getDrivers()
|
||||||
|
{
|
||||||
|
return(drivers.elements());
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a driver that can connect to the specified
|
||||||
|
* JDBC URL string. This will be selected from among drivers loaded
|
||||||
|
* at initialization time and those drivers manually loaded by the
|
||||||
|
* same class loader as the caller.
|
||||||
|
*
|
||||||
|
* @param url The JDBC URL string to find a driver for.
|
||||||
|
*
|
||||||
|
* @return A <code>Driver</code> that can connect to the specified
|
||||||
|
* URL, or <code>null</code> if a suitable driver cannot be found.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public static Driver
|
||||||
|
getDriver(String url) throws SQLException
|
||||||
|
{
|
||||||
|
// FIXME: Limit driver search to the appropriate subset of loaded drivers.
|
||||||
|
|
||||||
|
Enumeration e = drivers.elements();
|
||||||
|
while(e.hasMoreElements())
|
||||||
|
{
|
||||||
|
Driver d = (Driver)e.nextElement();
|
||||||
|
if (d.acceptsURL(url))
|
||||||
|
return(d);
|
||||||
|
}
|
||||||
|
|
||||||
|
return(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method attempts to return a connection to the specified
|
||||||
|
* JDBC URL string.
|
||||||
|
*
|
||||||
|
* @param url The JDBC URL string to connect to.
|
||||||
|
*
|
||||||
|
* @return A <code>Connection</code> to that URL.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public static Connection
|
||||||
|
getConnection(String url) throws SQLException
|
||||||
|
{
|
||||||
|
return(getConnection(url, new Properties()));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method attempts to return a connection to the specified
|
||||||
|
* JDBC URL string using the specified username and password.
|
||||||
|
*
|
||||||
|
* @param url The JDBC URL string to connect to.
|
||||||
|
* @param user The username to connect with.
|
||||||
|
* @param password The password to connect with.
|
||||||
|
*
|
||||||
|
* @return A <code>Connection</code> to that URL.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public static Connection
|
||||||
|
getConnection(String url, String user, String password) throws SQLException
|
||||||
|
{
|
||||||
|
Properties p = new Properties();
|
||||||
|
|
||||||
|
p.setProperty("user", user);
|
||||||
|
p.setProperty("password", password);
|
||||||
|
|
||||||
|
return(getConnection(url, p));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method attempts to return a connection to the specified
|
||||||
|
* JDBC URL string using the specified connection properties.
|
||||||
|
*
|
||||||
|
* @param url The JDBC URL string to connect to.
|
||||||
|
* @param properties The connection properties.
|
||||||
|
*
|
||||||
|
* @return A <code>Connection</code> to that URL.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public static Connection
|
||||||
|
getConnection(String url, Properties properties) throws SQLException
|
||||||
|
{
|
||||||
|
Driver d = getDriver(url);
|
||||||
|
if (d == null)
|
||||||
|
throw new SQLException("Driver not found for URL: " + url);
|
||||||
|
|
||||||
|
return(d.connect(url, properties));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Keep bozos from trying to instantiate us.
|
||||||
|
private
|
||||||
|
DriverManager()
|
||||||
|
{
|
||||||
|
;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class DriverManager
|
||||||
|
|
|
@ -0,0 +1,91 @@
|
||||||
|
/* DriverPropertyInfo.java -- Property information about drivers.
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class holds a driver property that can be used for querying or
|
||||||
|
* setting driver configuration parameters.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class DriverPropertyInfo
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The name of the property.
|
||||||
|
*/
|
||||||
|
public String name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the value of the property.
|
||||||
|
*/
|
||||||
|
public String value;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A description of the property, possibly <code>null</code>.
|
||||||
|
*/
|
||||||
|
public String description;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* A flag indicating whether or not a value for this property is required
|
||||||
|
* in order to connect to the database.
|
||||||
|
*/
|
||||||
|
public boolean required;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If values are restricted to certain choices, this is the list of valid
|
||||||
|
* ones. Otherwise it is <code>null</code>.
|
||||||
|
*/
|
||||||
|
public String[] choices;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>DriverPropertyInfo</code>
|
||||||
|
* with the specified name and value. All other fields are defaulted.
|
||||||
|
*
|
||||||
|
* @param name The name of the property.
|
||||||
|
* @param value The value to assign to the property.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
DriverPropertyInfo(String name, String value)
|
||||||
|
{
|
||||||
|
this.name = name;
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // DriverPropertyInfo
|
||||||
|
|
|
@ -0,0 +1,387 @@
|
||||||
|
/* PreparedStatement.java -- Interface for pre-compiled statements.
|
||||||
|
Copyright (C) 1999, 2000 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides a mechanism for executing pre-compiled
|
||||||
|
* statements. This provides greater efficiency when calling the same
|
||||||
|
* statement multiple times. Parameters are allowed in a statement,
|
||||||
|
* providings for maximum reusability.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface PreparedStatement extends Statement
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method populates the specified parameter with a SQL NULL value
|
||||||
|
* for the specified type.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter to set.
|
||||||
|
* @param type The SQL type identifier of the parameter from <code>Types</code>
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setNull(int index, int type) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>boolean</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setBoolean(int index, boolean value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>byte</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setByte(int index, byte value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>short</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setShort(int index, short value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>int</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setInt(int index, int value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>long</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setLong(int index, long value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>float</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setFloat(int index, float value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>double</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setDouble(int index, double value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>String</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setString(int index, String value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>byte</code> array value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setBytes(int index, byte[] value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>java.math.BigDecimal</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setBigDecimal(int index, java.math.BigDecimal value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>java.sql.Date</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setDate(int index, java.sql.Date value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>java.sql.Time</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setTime(int index, java.sql.Time value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>java.sql.Timestamp</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setTimestamp(int index, java.sql.Timestamp value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* ASCII <code>InputStream</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
* @param length The number of bytes in the stream.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setAsciiStream(int index, InputStream value, int length) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* Unicode UTF-8 <code>InputStream</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
* @param length The number of bytes in the stream.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setUnicodeStream(int index, InputStream value, int length) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* binary <code>InputStream</code> value.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
* @param length The number of bytes in the stream.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setBinaryStream(int index, InputStream value, int length) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>Object</code> value. The default object type to SQL type mapping
|
||||||
|
* will be used.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setObject(int index, Object value) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>Object</code> value. The specified SQL object type will be used.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
* @param type The SQL type to use for the parameter, from <code>Types</code>
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see Types
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setObject(int index, Object value, int type) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the specified parameter from the given Java
|
||||||
|
* <code>Object</code> value. The specified SQL object type will be used.
|
||||||
|
*
|
||||||
|
* @param index The index of the parameter value to set.
|
||||||
|
* @param value The value of the parameter.
|
||||||
|
* @param type The SQL type to use for the parameter, from <code>Types</code>
|
||||||
|
* @param scale The scale of the value, for numeric values only.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see Types
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setObject(int index, Object value, int type, int scale) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method clears all of the input parameter that have been
|
||||||
|
* set on this statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
clearParameters() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method executes a prepared SQL query.
|
||||||
|
* Some prepared statements return multiple results; the execute method
|
||||||
|
* handles these complex statements as well as the simpler form of
|
||||||
|
* statements handled by executeQuery and executeUpdate.
|
||||||
|
*
|
||||||
|
* @return The result of the SQL statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
execute() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method executes a prepared SQL query and returns its ResultSet.
|
||||||
|
*
|
||||||
|
* @return The ResultSet of the SQL statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract ResultSet
|
||||||
|
executeQuery() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method executes an SQL INSERT, UPDATE or DELETE statement. SQL
|
||||||
|
* statements that return nothing such as SQL DDL statements can be executed.
|
||||||
|
*
|
||||||
|
* @return The result is either the row count for INSERT, UPDATE or DELETE
|
||||||
|
* statements; or 0 for SQL statements that return nothing.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
executeUpdate() throws SQLException;
|
||||||
|
|
||||||
|
} // interface PreparedStatement
|
||||||
|
|
|
@ -0,0 +1,682 @@
|
||||||
|
/* ResultSet.java -- A SQL statement result set.
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.io.InputStream;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides access to the data set returned by a SQL
|
||||||
|
* statement. An instance of this interface is returned by the various
|
||||||
|
* execution methods in the <code>Statement</code.
|
||||||
|
* <p>
|
||||||
|
* This class models a cursor, which can be stepped through one row at a
|
||||||
|
* time. Methods are provided for accessing columns by column name or by
|
||||||
|
* index.
|
||||||
|
* <p>
|
||||||
|
* Note that a result set is invalidated if the statement that returned
|
||||||
|
* it is closed.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface ResultSet
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method advances to the next row in the result set. Any streams
|
||||||
|
* open on the current row are closed automatically.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the next row exists, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
next() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method closes the result set and frees any associated resources.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
close() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether the value of the last column that was fetched
|
||||||
|
* was actually a SQL NULL value.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the last column fetched was a NULL,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
wasNull() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>String</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>String</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getString(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>Object</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as an <code>Object</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract Object
|
||||||
|
getObject(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>boolean</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>boolean</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
getBoolean(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>byte</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>byte</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract byte
|
||||||
|
getByte(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>short</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>short</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract short
|
||||||
|
getShort(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>int</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>int</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getInt(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>long</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>long</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract long
|
||||||
|
getLong(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>float</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>float</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract float
|
||||||
|
getFloat(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>double</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>double</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract double
|
||||||
|
getDouble(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>BigDecimal</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
* @param scale The number of digits to the right of the decimal to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>BigDecimal</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract BigDecimal
|
||||||
|
getBigDecimal(int index, int scale) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* byte array.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a byte array
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract byte[]
|
||||||
|
getBytes(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>java.sql.Date</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>java.sql.Date</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Date
|
||||||
|
getDate(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>java.sql.Time</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>java.sql.Time</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Time
|
||||||
|
getTime(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>java.sql.Timestamp</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>java.sql.Timestamp</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Timestamp
|
||||||
|
getTimestamp(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as an ASCII
|
||||||
|
* stream. Note that all the data from this stream must be read before
|
||||||
|
* fetching the value of any other column. Please also be aware that
|
||||||
|
* calling <code>next()</code> or <code>close()</code> on this result set
|
||||||
|
* will close this stream as well.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as an ASCII <code>InputStream</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract InputStream
|
||||||
|
getAsciiStream(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Unicode UTF-8
|
||||||
|
* stream. Note that all the data from this stream must be read before
|
||||||
|
* fetching the value of any other column. Please also be aware that
|
||||||
|
* calling <code>next()</code> or <code>close()</code> on this result set
|
||||||
|
* will close this stream as well.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a Unicode UTF-8 <code>InputStream</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract InputStream
|
||||||
|
getUnicodeStream(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a raw byte
|
||||||
|
* stream. Note that all the data from this stream must be read before
|
||||||
|
* fetching the value of any other column. Please also be aware that
|
||||||
|
* calling <code>next()</code> or <code>close()</code> on this result set
|
||||||
|
* will close this stream as well.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a raw byte <code>InputStream</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract InputStream
|
||||||
|
getBinaryStream(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>String</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>String</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getString(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>Object</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as an <code>Object</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract Object
|
||||||
|
getObject(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>boolean</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>boolean</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
getBoolean(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>byte</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>byte</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract byte
|
||||||
|
getByte(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>short</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>short</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract short
|
||||||
|
getShort(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>int</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>int</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getInt(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>long</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>long</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract long
|
||||||
|
getLong(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>float</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>float</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract float
|
||||||
|
getFloat(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>double</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>double</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract double
|
||||||
|
getDouble(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>BigDecimal</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
* @param scale The number of digits to the right of the decimal to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>BigDecimal</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract BigDecimal
|
||||||
|
getBigDecimal(String column, int scale) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* byte array.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a byte array
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract byte[]
|
||||||
|
getBytes(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>java.sql.Date</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>java.sql.Date</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Date
|
||||||
|
getDate(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>java.sql.Time</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>java.sql.Time</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Time
|
||||||
|
getTime(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Java
|
||||||
|
* <code>java.sql.Timestamp</code>.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a <code>java.sql.Timestamp</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract java.sql.Timestamp
|
||||||
|
getTimestamp(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as an ASCII
|
||||||
|
* stream. Note that all the data from this stream must be read before
|
||||||
|
* fetching the value of any other column. Please also be aware that
|
||||||
|
* calling <code>next()</code> or <code>close()</code> on this result set
|
||||||
|
* will close this stream as well.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as an ASCII <code>InputStream</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract InputStream
|
||||||
|
getAsciiStream(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a Unicode UTF-8
|
||||||
|
* stream. Note that all the data from this stream must be read before
|
||||||
|
* fetching the value of any other column. Please also be aware that
|
||||||
|
* calling <code>next()</code> or <code>close()</code> on this result set
|
||||||
|
* will close this stream as well.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a Unicode UTF-8 <code>InputStream</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract InputStream
|
||||||
|
getUnicodeStream(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the value of the specified column as a raw byte
|
||||||
|
* stream. Note that all the data from this stream must be read before
|
||||||
|
* fetching the value of any other column. Please also be aware that
|
||||||
|
* calling <code>next()</code> or <code>close()</code> on this result set
|
||||||
|
* will close this stream as well.
|
||||||
|
*
|
||||||
|
* @param column The name of the column to return.
|
||||||
|
*
|
||||||
|
* @return The column value as a raw byte <code>InputStream</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract InputStream
|
||||||
|
getBinaryStream(String column) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the first SQL warning associated with this result
|
||||||
|
* set. Any additional warnings will be chained to this one.
|
||||||
|
*
|
||||||
|
* @return The first SQLWarning for this result set, or <code>null</code> if
|
||||||
|
* there are no warnings.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract SQLWarning
|
||||||
|
getWarnings() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method clears all warnings associated with this result set.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
clearWarnings() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the database cursor used by this
|
||||||
|
* result set.
|
||||||
|
*
|
||||||
|
* @return The name of the database cursor used by this result set.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getCursorName() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns data about the columns returned as part of the
|
||||||
|
* result set as a <code>ResultSetMetaData</code> instance.
|
||||||
|
*
|
||||||
|
* @return The <code>ResultSetMetaData</code> instance for this result set.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract ResultSetMetaData
|
||||||
|
getMetaData() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the column index of the specified named column.
|
||||||
|
*
|
||||||
|
* @param column The name of the column.
|
||||||
|
*
|
||||||
|
* @return The index of the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
findColumn(String column) throws SQLException;
|
||||||
|
|
||||||
|
} // interface ResultSet
|
||||||
|
|
|
@ -0,0 +1,362 @@
|
||||||
|
/* ResultSetMetaData.java -- Returns information about the ResultSet
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides a mechanism for obtaining information about
|
||||||
|
* the columns that are present in a <code>ResultSet</code>.
|
||||||
|
* <p>
|
||||||
|
* Note that in this class column indexes start at 1, not 0.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface ResultSetMetaData
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column does not allow NULL's.
|
||||||
|
*/
|
||||||
|
public static final int columnNoNulls = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column allows NULL's.
|
||||||
|
*/
|
||||||
|
public static final int columnNullable = 1;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* It is unknown whether or not the column allows NULL's.
|
||||||
|
*/
|
||||||
|
public static final int columnNullableUnknown = 2;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the number of columns in the result set.
|
||||||
|
*
|
||||||
|
* @return The number of columns in the result set.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getColumnCount() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method test whether or not the column is an auto-increment column.
|
||||||
|
* Auto-increment columns are read-only.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to test.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column is auto-increment, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isAutoIncrement(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not a column is case sensitive in its values.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to test.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column value is case sensitive,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isCaseSensitive(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether not the specified column can be used in
|
||||||
|
* a WHERE clause.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to test.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column may be used in a WHERE clause,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isSearchable(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the column stores a monetary value.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to test.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column contains a monetary value,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isCurrency(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a value indicating whether or not the specified
|
||||||
|
* column may contain a NULL value.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to test.
|
||||||
|
*
|
||||||
|
* @return A constant indicating whether or not the column can contain NULL,
|
||||||
|
* which will be one of <code>columnNoNulls</code>,
|
||||||
|
* <code>columnNullable</code>, or <code>columnNullableUnknown</code>.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
isNullable(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the value of the specified column
|
||||||
|
* is signed or unsigned.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to test.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column value is signed, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isSigned(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the maximum number of characters that can be used
|
||||||
|
* to display a value in this column.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check.
|
||||||
|
*
|
||||||
|
* @return The maximum number of characters that can be used to display a
|
||||||
|
* value for this column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getColumnDisplaySize(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a string that should be used as a caption for this
|
||||||
|
* column for user display purposes.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check.
|
||||||
|
*
|
||||||
|
* @return A display string for the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getColumnLabel(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the specified column.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to return the name of.
|
||||||
|
*
|
||||||
|
* @return The name of the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getColumnName(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the schema that contains the specified
|
||||||
|
* column.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check the schema name for.
|
||||||
|
*
|
||||||
|
* @return The name of the schema that contains the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getSchemaName(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the precision of the specified column, which is the
|
||||||
|
* number of decimal digits it contains.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check the precision on.
|
||||||
|
*
|
||||||
|
* @return The precision of the specified column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getPrecision(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the scale of the specified column, which is the
|
||||||
|
* number of digits to the right of the decimal point.
|
||||||
|
*
|
||||||
|
* @param index The index column to check the scale of.
|
||||||
|
*
|
||||||
|
* @return The scale of the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getScale(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the table containing the specified
|
||||||
|
* column.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check the table name for.
|
||||||
|
*
|
||||||
|
* @return The name of the table containing the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getTableName(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the catalog containing the specified
|
||||||
|
* column.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check the catalog name for.
|
||||||
|
*
|
||||||
|
* @return The name of the catalog containing the column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getCatalogName(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the SQL type of the specified column. This will
|
||||||
|
* be one of the constants from <code>Types</code>.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check the SQL type of.
|
||||||
|
*
|
||||||
|
* @return The SQL type for this column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see Types
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getColumnType(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the name of the SQL type for this column.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check the SQL type name for.
|
||||||
|
*
|
||||||
|
* @return The name of the SQL type for this column.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract String
|
||||||
|
getColumnTypeName(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the specified column is read only.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column is read only, <code>false</code>
|
||||||
|
* otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isReadOnly(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the column may be writable. This
|
||||||
|
* does not guarantee that a write will be successful.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check for writability.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column may be writable,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isWritable(int index) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests whether or not the column is writable. This
|
||||||
|
* does guarantee that a write will be successful.
|
||||||
|
*
|
||||||
|
* @param index The index of the column to check for writability.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the column is writable,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
isDefinitelyWritable(int index) throws SQLException;
|
||||||
|
|
||||||
|
} // interface ResultSetMetaData
|
||||||
|
|
|
@ -0,0 +1,199 @@
|
||||||
|
/* SQLException.java -- General SQL exception
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This exception is thrown when a database error occurs.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class SQLException extends Exception implements java.io.Serializable
|
||||||
|
{
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the next exception in the chain
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private SQLException next;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the state of the SQL statement at the time of the error.
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private String SQLState;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The vendor error code for this error
|
||||||
|
* @serialized
|
||||||
|
*/
|
||||||
|
private int vendorCode;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>SQLException</code>
|
||||||
|
* that does not have a descriptive messages and SQL state, and which
|
||||||
|
* has a vendor error code of 0.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLException()
|
||||||
|
{
|
||||||
|
this(null, null, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>SQLException</code>
|
||||||
|
* with the specified descriptive error message. The SQL state of this
|
||||||
|
* instance will be <code>null</code> and the vendor error code will be 0.
|
||||||
|
*
|
||||||
|
* @param message A string describing the nature of the error.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLException(String message)
|
||||||
|
{
|
||||||
|
this(message, null, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>SQLException</code>
|
||||||
|
* with the specified descriptive error message and SQL state string.
|
||||||
|
* The vendor error code of this instance will be 0.
|
||||||
|
*
|
||||||
|
* @param message A string describing the nature of the error.
|
||||||
|
* @param SQLState A string containing the SQL state of the error.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLException(String message, String SQLState)
|
||||||
|
{
|
||||||
|
this(message, SQLState, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a nwe instance of <code>SQLException</code>
|
||||||
|
* with the specified descriptive error message, SQL state string, and
|
||||||
|
* vendor code.
|
||||||
|
*
|
||||||
|
* @param message A string describing the nature of the error.
|
||||||
|
* @param SQLState A string containing the SQL state of the error.
|
||||||
|
* @param vendorCode The vendor error code associated with this error.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLException(String message, String SQLState, int vendorCode)
|
||||||
|
{
|
||||||
|
super(message);
|
||||||
|
|
||||||
|
this.SQLState = SQLState;
|
||||||
|
this.vendorCode = vendorCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the SQLState information associated with this
|
||||||
|
* error. The value returned is a <code>String</code> which is formatted
|
||||||
|
* using the XOPEN SQL state conventions.
|
||||||
|
*
|
||||||
|
* @return The SQL state, which may be <code>null</code>.
|
||||||
|
*/
|
||||||
|
public String
|
||||||
|
getSQLState()
|
||||||
|
{
|
||||||
|
return(SQLState);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the vendor specific error code associated with
|
||||||
|
* this error.
|
||||||
|
*
|
||||||
|
* @return The vendor specific error code associated with this error.
|
||||||
|
*/
|
||||||
|
public int
|
||||||
|
getErrorCode()
|
||||||
|
{
|
||||||
|
return(vendorCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the exception that is chained to this object.
|
||||||
|
*
|
||||||
|
* @return The exception chained to this object, which may be
|
||||||
|
* <code>null</code>.
|
||||||
|
*/
|
||||||
|
public SQLException
|
||||||
|
getNextException()
|
||||||
|
{
|
||||||
|
return(next);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method adds a new exception to the end of the chain of exceptions
|
||||||
|
* that are chained to this object.
|
||||||
|
*
|
||||||
|
* @param e The exception to add to the end of the chain.
|
||||||
|
*/
|
||||||
|
public void
|
||||||
|
setNextException(SQLException e)
|
||||||
|
{
|
||||||
|
if (e == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
SQLException list_entry = this;
|
||||||
|
while (list_entry.getNextException() != null)
|
||||||
|
list_entry = list_entry.getNextException();
|
||||||
|
|
||||||
|
list_entry.next = e;
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class SQLException
|
||||||
|
|
|
@ -0,0 +1,136 @@
|
||||||
|
/* SQLWarning.java -- Database access warnings.
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This exception is thrown when a database warning occurs.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class SQLWarning extends SQLException implements java.io.Serializable
|
||||||
|
{
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>SQLWxception</code>
|
||||||
|
* that does not have a descriptive messages and SQL state, and which
|
||||||
|
* has a vendor error code of 0.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLWarning()
|
||||||
|
{
|
||||||
|
this(null, null, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>SQLWarning</code>
|
||||||
|
* with the specified descriptive error message. The SQL state of this
|
||||||
|
* instance will be <code>null</code> and the vendor error code will be 0.
|
||||||
|
*
|
||||||
|
* @param message A string describing the nature of the error.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLWarning(String message)
|
||||||
|
{
|
||||||
|
this(message, null, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of <code>SQLWarning</code>
|
||||||
|
* with the specified descriptive error message and SQL state string.
|
||||||
|
* The vendor error code of this instance will be 0.
|
||||||
|
*
|
||||||
|
* @param message A string describing the nature of the error.
|
||||||
|
* @param SQLState A string containing the SQL state of the error.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLWarning(String message, String SQLState)
|
||||||
|
{
|
||||||
|
this(message, SQLState, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a nwe instance of <code>SQLWarning</code>
|
||||||
|
* with the specified descriptive error message, SQL state string, and
|
||||||
|
* vendor code.
|
||||||
|
*
|
||||||
|
* @param message A string describing the nature of the error.
|
||||||
|
* @param SQLState A string containing the SQL state of the error.
|
||||||
|
* @param vendorCode The vendor error code associated with this error.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
SQLWarning(String message, String SQLState, int vendorCode)
|
||||||
|
{
|
||||||
|
super(message, SQLState, vendorCode);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the exception that is chained to this object.
|
||||||
|
*
|
||||||
|
* @return The exception chained to this object, which may be
|
||||||
|
* <code>null</code>.
|
||||||
|
*/
|
||||||
|
public SQLWarning
|
||||||
|
getNextWarning()
|
||||||
|
{
|
||||||
|
return((SQLWarning)super.getNextException());
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method adds a new exception to the end of the chain of exceptions
|
||||||
|
* that are chained to this object.
|
||||||
|
*
|
||||||
|
* @param e The exception to add to the end of the chain.
|
||||||
|
*/
|
||||||
|
public void
|
||||||
|
setNextWarning(SQLWarning e)
|
||||||
|
{
|
||||||
|
super.setNextException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class SQLWarning
|
||||||
|
|
|
@ -0,0 +1,277 @@
|
||||||
|
/* Statement.java -- Interface for executing SQL statements.
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interface provides a mechanism for executing SQL statements.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public interface Statement
|
||||||
|
{
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method executes the specified SQL SELECT statement and returns a
|
||||||
|
* (possibly empty) <code>ResultSet</code> with the results of the query.
|
||||||
|
*
|
||||||
|
* @param sql The SQL statement to execute.
|
||||||
|
*
|
||||||
|
* @return The result set of the SQL statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract ResultSet
|
||||||
|
executeQuery(String sql) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method executes the specified SQL INSERT, UPDATE, or DELETE statement
|
||||||
|
* and returns the number of rows affected, which may be 0.
|
||||||
|
*
|
||||||
|
* @param sql The SQL statement to execute.
|
||||||
|
*
|
||||||
|
* @return The number of rows affected by the SQL statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
executeUpdate(String sql) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method closes the statement and frees any associated resources.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
close() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the maximum length of any column value in bytes.
|
||||||
|
*
|
||||||
|
* @return The maximum length of any column value in bytes.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getMaxFieldSize() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the limit for the maximum length of any column in bytes.
|
||||||
|
*
|
||||||
|
* @param maxsize The new maximum length of any column in bytes.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setMaxFieldSize(int maxsize) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the maximum possible number of rows in a result set.
|
||||||
|
*
|
||||||
|
* @return The maximum possible number of rows in a result set.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getMaxRows() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the maximum number of rows that can be present in a
|
||||||
|
* result set.
|
||||||
|
*
|
||||||
|
* @param maxrows The maximum possible number of rows in a result set.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setMaxRows(int maxrows) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the local escape processing mode on or off. The
|
||||||
|
* default value is on.
|
||||||
|
*
|
||||||
|
* @param escape <code>true</code> to enable local escape processing,
|
||||||
|
* <code>false</code> to disable it.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setEscapeProcessing(boolean esacpe) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The method returns the number of seconds a statement may be in process
|
||||||
|
* before timing out. A value of 0 means there is no timeout.
|
||||||
|
*
|
||||||
|
* @return The SQL statement timeout in seconds.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getQueryTimeout() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the number of seconds a statement may be in process
|
||||||
|
* before timing out. A value of 0 means there is no timeout.
|
||||||
|
*
|
||||||
|
* @param timeout The new SQL statement timeout value.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setQueryTimeout(int timeout) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method cancels an outstanding statement, if the database supports
|
||||||
|
* that operation.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
cancel() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the first SQL warning attached to this statement.
|
||||||
|
* Subsequent warnings will be chained to this one.
|
||||||
|
*
|
||||||
|
* @return The first SQL warning for this statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract SQLWarning
|
||||||
|
getWarnings() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method clears any SQL warnings that have been attached to this
|
||||||
|
* statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
clearWarnings() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the cursor name that will be used by the result set.
|
||||||
|
*
|
||||||
|
* @param name The cursor name to use for this statement.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract void
|
||||||
|
setCursorName(String name) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method executes an arbitrary SQL statement of any time. The
|
||||||
|
* methods <code>getResultSet</code>, <code>getMoreResults</code> and
|
||||||
|
* <code>getUpdateCount</code> retrieve the results.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if a result set was returned, <code>false</code>
|
||||||
|
* if an update count was returned.
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
execute(String sql) throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the result set of the SQL statement that was
|
||||||
|
* executed. This should be called only once per result set returned.
|
||||||
|
*
|
||||||
|
* @return The result set of the query, or <code>null</code> if there was
|
||||||
|
* no result set (for example, if the statement was an UPDATE).
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see execute
|
||||||
|
*/
|
||||||
|
public abstract ResultSet
|
||||||
|
getResultSet() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the update count of the SQL statement that was
|
||||||
|
* executed. This should be called only once per executed SQL statement.
|
||||||
|
*
|
||||||
|
* @return The update count of the query, or -1 if there was no update
|
||||||
|
* count (for example, if the statement was a SELECT).
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see execute
|
||||||
|
*/
|
||||||
|
public abstract int
|
||||||
|
getUpdateCount() throws SQLException;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method advances the result set pointer to the next result set,
|
||||||
|
* which can then be retrieved using <code>getResultSet</code>
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if there is another result set,
|
||||||
|
* <code>false</code> otherwise (for example, the next result is an
|
||||||
|
* update count).
|
||||||
|
*
|
||||||
|
* @exception SQLException If an error occurs.
|
||||||
|
*
|
||||||
|
* @see execute
|
||||||
|
*/
|
||||||
|
public abstract boolean
|
||||||
|
getMoreResults() throws SQLException;
|
||||||
|
|
||||||
|
} // interface Statement
|
||||||
|
|
|
@ -0,0 +1,137 @@
|
||||||
|
/* Time.java -- Wrapper around java.util.Date
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is a wrapper around java.util.Date to allow the JDBC
|
||||||
|
* driver to identify the value as a SQL Time.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class Time extends java.util.Date implements java.io.Serializable
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for parsing and formatting this date.
|
||||||
|
*/
|
||||||
|
private static SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a new instance of this class by parsing a
|
||||||
|
* date in JDBC format into a Java date.
|
||||||
|
*
|
||||||
|
* @param str The string to parse.
|
||||||
|
*
|
||||||
|
* @return The resulting <code>java.sql.Time</code> value.
|
||||||
|
*/
|
||||||
|
public static Time
|
||||||
|
valueOf(String str)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
java.util.Date d = (java.util.Date)sdf.parseObject(str);
|
||||||
|
return(new Time(d.getTime()));
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
return(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of this class with the
|
||||||
|
* specified year, month, and day.
|
||||||
|
*
|
||||||
|
* @param hour The hour for this Time (0-23)
|
||||||
|
* @param minute The minute for this time (0-59)
|
||||||
|
* @param second The second for this time (0-59)
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
Time(int hour, int minute, int second)
|
||||||
|
{
|
||||||
|
super(System.currentTimeMillis());
|
||||||
|
|
||||||
|
setHours(hour);
|
||||||
|
setMinutes(minute);
|
||||||
|
setSeconds(second);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of this class with the
|
||||||
|
* specified time value representing the number of seconds since
|
||||||
|
* Jan 1, 1970 at 12:00 midnight GMT.
|
||||||
|
*
|
||||||
|
* @param time The time value to intialize this <code>Time</code> to.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
Time(long date)
|
||||||
|
{
|
||||||
|
super(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns this date in JDBC format.
|
||||||
|
*
|
||||||
|
* @return This date as a string.
|
||||||
|
*/
|
||||||
|
public String
|
||||||
|
toString()
|
||||||
|
{
|
||||||
|
return(sdf.format(this));
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class Time
|
||||||
|
|
|
@ -0,0 +1,285 @@
|
||||||
|
/* Time.java -- Wrapper around java.util.Date
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is a wrapper around java.util.Date to allow the JDBC
|
||||||
|
* driver to identify the value as a SQL Timestamp. Note that this
|
||||||
|
* class also adds an additional field for nano-seconds, and so
|
||||||
|
* is not completely identical to <code>java.util.Date</code> as
|
||||||
|
* the <code>java.sql.Date</code> and <code>java.sql.Time</code>
|
||||||
|
* classes are.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class Timestamp extends java.util.Date implements java.io.Serializable
|
||||||
|
{
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Used for parsing and formatting this date.
|
||||||
|
*/
|
||||||
|
// Millisecond will have to be close enough for now.
|
||||||
|
private static SimpleDateFormat parse_sdf =
|
||||||
|
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSSS");
|
||||||
|
|
||||||
|
private static SimpleDateFormat format_sdf =
|
||||||
|
new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Variables
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @serial The nanosecond value for this object
|
||||||
|
*/
|
||||||
|
private int nanos;
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns a new instance of this class by parsing a
|
||||||
|
* date in JDBC format into a Java date.
|
||||||
|
*
|
||||||
|
* @param str The string to parse.
|
||||||
|
*
|
||||||
|
* @return The resulting <code>java.sql.Timestamp</code> value.
|
||||||
|
*/
|
||||||
|
public static Timestamp
|
||||||
|
valueOf(String str)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Date d = (Date)parse_sdf.parseObject(str);
|
||||||
|
return(new Timestamp(d.getTime()));
|
||||||
|
}
|
||||||
|
catch(Exception e)
|
||||||
|
{
|
||||||
|
return(null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Constructors
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of this class with the
|
||||||
|
* specified year, month, and day.
|
||||||
|
*
|
||||||
|
* @param year The year for this Timestamp (year - 1900)
|
||||||
|
* @param month The month for this Timestamp (0-11)
|
||||||
|
* @param day The day for this Timestamp (1-31)
|
||||||
|
* @param hour The hour for this Timestamp (0-23)
|
||||||
|
* @param minute The minute for this Timestamp (0-59)
|
||||||
|
* @param second The second for this Timestamp (0-59)
|
||||||
|
* @param nanos The nanosecond value for this Timestamp (0 to 999,999,9999)
|
||||||
|
*
|
||||||
|
* @deprecated
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
Timestamp(int year, int month, int day, int hour, int minute, int second,
|
||||||
|
int nanos)
|
||||||
|
{
|
||||||
|
super(year, month, day, hour, minute, second);
|
||||||
|
|
||||||
|
this.nanos = nanos;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method initializes a new instance of this class with the
|
||||||
|
* specified time value representing the number of seconds since
|
||||||
|
* Jan 1, 1970 at 12:00 midnight GMT.
|
||||||
|
*
|
||||||
|
* @param time The time value to intialize this <code>Time</code> to.
|
||||||
|
*/
|
||||||
|
public
|
||||||
|
Timestamp(long date)
|
||||||
|
{
|
||||||
|
super(date);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Instance Methods
|
||||||
|
*/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns this date in JDBC format.
|
||||||
|
*
|
||||||
|
* @return This date as a string.
|
||||||
|
*/
|
||||||
|
public String
|
||||||
|
toString()
|
||||||
|
{
|
||||||
|
return(format_sdf.format(this) + "." + getNanos());
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method returns the nanosecond value for this object.
|
||||||
|
*
|
||||||
|
* @return The nanosecond value for this object.
|
||||||
|
*/
|
||||||
|
public int
|
||||||
|
getNanos()
|
||||||
|
{
|
||||||
|
return(nanos);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method sets the nanosecond value for this object.
|
||||||
|
*
|
||||||
|
* @param nanos The nanosecond value for this object.
|
||||||
|
*/
|
||||||
|
public void
|
||||||
|
setNanos(int nanos)
|
||||||
|
{
|
||||||
|
this.nanos = nanos;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This methods tests whether this object is earlier than the specified
|
||||||
|
* object.
|
||||||
|
*
|
||||||
|
* @param ts The other <code>Timestamp</code> to test against.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if this object is earlier than the other object,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*/
|
||||||
|
public boolean
|
||||||
|
before(Timestamp ts)
|
||||||
|
{
|
||||||
|
if (ts.getTime() > getTime())
|
||||||
|
return(true);
|
||||||
|
|
||||||
|
if (ts.getNanos() > getNanos())
|
||||||
|
return(true);
|
||||||
|
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This methods tests whether this object is later than the specified
|
||||||
|
* object.
|
||||||
|
*
|
||||||
|
* @param ts The other <code>Timestamp</code> to test against.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if this object is later than the other object,
|
||||||
|
* <code>false</code> otherwise.
|
||||||
|
*/
|
||||||
|
public boolean
|
||||||
|
after(Timestamp ts)
|
||||||
|
{
|
||||||
|
if (ts.getTime() < getTime())
|
||||||
|
return(true);
|
||||||
|
|
||||||
|
if (ts.getNanos() < getNanos())
|
||||||
|
return(true);
|
||||||
|
|
||||||
|
return(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method these the specified <code>Object</code> for equality
|
||||||
|
* against this object. This will be true if an only if the specified
|
||||||
|
* object is an instance of <code>Timestamp</code> and has the same
|
||||||
|
* time value fields.
|
||||||
|
*
|
||||||
|
* @param obj The object to test against for equality.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the specified object is equal to this
|
||||||
|
* object, <code>false</code> otherwise.
|
||||||
|
*/
|
||||||
|
public boolean
|
||||||
|
equals(Object obj)
|
||||||
|
{
|
||||||
|
if (obj == null)
|
||||||
|
return(false);
|
||||||
|
|
||||||
|
if (!(obj instanceof Timestamp))
|
||||||
|
return(false);
|
||||||
|
|
||||||
|
return(equals((Timestamp)obj));
|
||||||
|
}
|
||||||
|
|
||||||
|
/*************************************************************************/
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This method tests the specified timestamp for equality against this
|
||||||
|
* object. This will be true if and only if the specified object is
|
||||||
|
* not <code>null</code> and contains all the same time value fields
|
||||||
|
* as this object.
|
||||||
|
*
|
||||||
|
* @param ts The <code>Timestamp</code> to test against for equality.
|
||||||
|
*
|
||||||
|
* @return <code>true</code> if the specified object is equal to this
|
||||||
|
* object, <code>false</code> otherwise.
|
||||||
|
*/
|
||||||
|
public boolean
|
||||||
|
equals(Timestamp ts)
|
||||||
|
{
|
||||||
|
if (ts == null)
|
||||||
|
return(false);
|
||||||
|
|
||||||
|
if (ts.getTime() != getTime())
|
||||||
|
return(false);
|
||||||
|
|
||||||
|
if (ts.getNanos() != getNanos())
|
||||||
|
return(false);
|
||||||
|
|
||||||
|
return(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
} // class Timestamp
|
||||||
|
|
|
@ -0,0 +1,64 @@
|
||||||
|
/* Types.java -- SQL type constants
|
||||||
|
Copyright (C) 1999 Free Software Foundation, Inc.
|
||||||
|
|
||||||
|
This file is part of GNU Classpath.
|
||||||
|
|
||||||
|
GNU Classpath is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
any later version.
|
||||||
|
|
||||||
|
GNU Classpath is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with GNU Classpath; see the file COPYING. If not, write to the
|
||||||
|
Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
|
||||||
|
02111-1307 USA.
|
||||||
|
|
||||||
|
As a special exception, if you link this library with other files to
|
||||||
|
produce an executable, this library does not by itself cause the
|
||||||
|
resulting executable to be covered by the GNU General Public License.
|
||||||
|
This exception does not however invalidate any other reasons why the
|
||||||
|
executable file might be covered by the GNU General Public License. */
|
||||||
|
|
||||||
|
|
||||||
|
package java.sql;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class contains constants that are used to identify SQL data types.
|
||||||
|
*
|
||||||
|
* @author Aaron M. Renn (arenn@urbanophile.com)
|
||||||
|
*/
|
||||||
|
public class Types
|
||||||
|
{
|
||||||
|
|
||||||
|
// These should be self explanatory. People need a SQL book, not
|
||||||
|
// Javadoc comments for these.
|
||||||
|
|
||||||
|
public static final int BIT = -7;
|
||||||
|
public static final int TINYINT = -6;
|
||||||
|
public static final int SMALLINT = 5;
|
||||||
|
public static final int INTEGER = 4;
|
||||||
|
public static final int BIGINT = -5;
|
||||||
|
public static final int FLOAT = 6;
|
||||||
|
public static final int REAL = 7;
|
||||||
|
public static final int DOUBLE = 8;
|
||||||
|
public static final int NUMERIC = 2;
|
||||||
|
public static final int DECIMAL = 3;
|
||||||
|
public static final int CHAR = 1;
|
||||||
|
public static final int VARCHAR = 12;
|
||||||
|
public static final int LONGVARCHAR = -1;
|
||||||
|
public static final int DATE = 91;
|
||||||
|
public static final int TIME = 92;
|
||||||
|
public static final int TIMESTAMP = 93;
|
||||||
|
public static final int BINARY = -2;
|
||||||
|
public static final int VARBINARY = -3;
|
||||||
|
public static final int LONGVARBINARY = -4;
|
||||||
|
public static final int NULL = 0;
|
||||||
|
public static final int OTHER = 1111;
|
||||||
|
|
||||||
|
} // class Types
|
||||||
|
|
|
@ -11,10 +11,10 @@ java.lang.Character.classify12
|
||||||
java.lang.String.hash
|
java.lang.String.hash
|
||||||
# We support 1.2 for this test.
|
# We support 1.2 for this test.
|
||||||
java.lang.reflect.Modifier.toString12
|
java.lang.reflect.Modifier.toString12
|
||||||
!java.math
|
java.math
|
||||||
!java.rmi
|
!java.rmi
|
||||||
!java.security
|
java.security
|
||||||
!java.sql
|
java.sql
|
||||||
java.text.FieldPosition.Test
|
java.text.FieldPosition.Test
|
||||||
java.text.ParsePosition.Test
|
java.text.ParsePosition.Test
|
||||||
java.text.SimpleDateFormat.getAndSet2DigitYearStart
|
java.text.SimpleDateFormat.getAndSet2DigitYearStart
|
||||||
|
|
Loading…
Reference in New Issue