diff options
| author | Peter Mount <peter@retep.org.uk> | 2000-04-17 20:07:56 +0000 |
|---|---|---|
| committer | Peter Mount <peter@retep.org.uk> | 2000-04-17 20:07:56 +0000 |
| commit | 25dadc85140b1f688a4cf0c2de8b961a07b10f11 (patch) | |
| tree | 14c91b7e37ca13fba1a4880687cf02bd2dad2de2 /src/interfaces/jdbc/org/postgresql/util/PSQLException.java | |
| parent | aafff4af162dcf2be91fcd67db6881d6cf166565 (diff) | |
| download | postgresql-25dadc85140b1f688a4cf0c2de8b961a07b10f11.tar.gz | |
Another attempt at 7.0
Diffstat (limited to 'src/interfaces/jdbc/org/postgresql/util/PSQLException.java')
| -rw-r--r-- | src/interfaces/jdbc/org/postgresql/util/PSQLException.java | 111 |
1 files changed, 111 insertions, 0 deletions
diff --git a/src/interfaces/jdbc/org/postgresql/util/PSQLException.java b/src/interfaces/jdbc/org/postgresql/util/PSQLException.java new file mode 100644 index 0000000000..36290a5db1 --- /dev/null +++ b/src/interfaces/jdbc/org/postgresql/util/PSQLException.java @@ -0,0 +1,111 @@ +package org.postgresql.util; + +import java.sql.*; +import java.text.*; +import java.util.*; + +/** + * This class extends SQLException, and provides our internationalisation handling + */ +public class PSQLException extends SQLException +{ + private String message; + + // Cache for future errors + static ResourceBundle bundle; + + /** + * This provides the same functionality to SQLException + * @param error Error string + */ + public PSQLException(String error) { + super(); + translate(error,null); + } + + /** + * A more generic entry point. + * @param error Error string or standard message id + * @param args Array of arguments + */ + public PSQLException(String error,Object[] args) + { + //super(); + translate(error,args); + } + + /** + * Helper version for 1 arg + */ + public PSQLException(String error,Object arg) + { + super(); + Object[] argv = new Object[1]; + argv[0] = arg; + translate(error,argv); + } + + /** + * Helper version for 2 args + */ + public PSQLException(String error,Object arg1,Object arg2) + { + super(); + Object[] argv = new Object[2]; + argv[0] = arg1; + argv[1] = arg2; + translate(error,argv); + } + + /** + * This does the actual translation + */ + private void translate(String id,Object[] args) + { + if(bundle == null) { + try { + bundle = ResourceBundle.getBundle("org.postgresql.errors"); + } catch(MissingResourceException e) { + } + } + + // Now look up a localized message. If one is not found, then use + // the supplied message instead. + message = null; + try { + message = bundle.getString(id); + } catch(MissingResourceException e) { + message = id; + } + + // Expand any arguments + if(args!=null) + message = MessageFormat.format(message,args); + + } + + /** + * Overides Throwable + */ + public String getLocalizedMessage() + { + return message; + } + + /** + * Overides Throwable + */ + public String getMessage() + { + return message; + } + + /** + * Overides Object + */ + public String toString() + { + return message; + } + +} |
