home *** CD-ROM | disk | FTP | other *** search
/ PC Pro 1999 April / DPPCPRO0499.ISO / April / Notes / 50b2wic.exe / DATA1.CAB / NotesProgramFilesJavaSupport / rt.jar / java / sql / DriverManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-04-23  |  5.2 KB  |  231 lines

  1. package java.sql;
  2.  
  3. import java.io.PrintStream;
  4. import java.util.Enumeration;
  5. import java.util.Hashtable;
  6. import java.util.Properties;
  7. import java.util.Vector;
  8.  
  9. public class DriverManager {
  10.    private static Vector drivers = new Vector();
  11.    private static int loginTimeout;
  12.    private static PrintStream logStream = null;
  13.    private static boolean initialized;
  14.  
  15.    public static synchronized Connection getConnection(String var0, Properties var1) throws SQLException {
  16.       if (var0 == null) {
  17.          throw new SQLException("The url cannot be null", "08001");
  18.       } else {
  19.          println("DriverManager.getConnection(\"" + var0 + "\")");
  20.          if (!initialized) {
  21.             initialize();
  22.          }
  23.  
  24.          Object var2 = getSecurityContext();
  25.          SQLException var3 = null;
  26.  
  27.          for(int var4 = 0; var4 < drivers.size(); ++var4) {
  28.             DriverInfo var5 = (DriverInfo)drivers.elementAt(var4);
  29.             if (var5.securityContext != null && var5.securityContext != var2) {
  30.                println("    skipping: " + var5);
  31.             } else {
  32.                try {
  33.                   println("    trying " + var5);
  34.                   Connection var6 = var5.driver.connect(var0, var1);
  35.                   if (var6 != null) {
  36.                      println("getConnection returning " + var5);
  37.                      return var6;
  38.                   }
  39.                } catch (SQLException var7) {
  40.                   if (var3 == null) {
  41.                      var3 = var7;
  42.                   }
  43.                }
  44.             }
  45.          }
  46.  
  47.          if (var3 != null) {
  48.             println("getConnection failed: " + var3);
  49.             throw var3;
  50.          } else {
  51.             println("getConnection: no suitable driver");
  52.             throw new SQLException("No suitable driver", "08001");
  53.          }
  54.       }
  55.    }
  56.  
  57.    public static synchronized Connection getConnection(String var0, String var1, String var2) throws SQLException {
  58.       Properties var3 = new Properties();
  59.       if (var1 != null) {
  60.          ((Hashtable)var3).put("user", var1);
  61.       }
  62.  
  63.       if (var2 != null) {
  64.          ((Hashtable)var3).put("password", var2);
  65.       }
  66.  
  67.       return getConnection(var0, var3);
  68.    }
  69.  
  70.    public static synchronized Connection getConnection(String var0) throws SQLException {
  71.       Properties var1 = new Properties();
  72.       return getConnection(var0, var1);
  73.    }
  74.  
  75.    public static Driver getDriver(String var0) throws SQLException {
  76.       println("DriverManager.getDriver(\"" + var0 + "\")");
  77.       if (!initialized) {
  78.          initialize();
  79.       }
  80.  
  81.       Object var1 = getSecurityContext();
  82.  
  83.       for(int var2 = 0; var2 < drivers.size(); ++var2) {
  84.          DriverInfo var3 = (DriverInfo)drivers.elementAt(var2);
  85.          if (var3.securityContext != null && var3.securityContext != var1) {
  86.             println("    skipping: " + var3);
  87.          } else {
  88.             try {
  89.                println("    trying " + var3);
  90.                if (var3.driver.acceptsURL(var0)) {
  91.                   println("getDriver returning " + var3);
  92.                   return var3.driver;
  93.                }
  94.             } catch (SQLException var4) {
  95.             }
  96.          }
  97.       }
  98.  
  99.       println("getDriver: no suitable driver");
  100.       throw new SQLException("No suitable driver", "08001");
  101.    }
  102.  
  103.    public static synchronized void registerDriver(Driver var0) throws SQLException {
  104.       if (!initialized) {
  105.          initialize();
  106.       }
  107.  
  108.       DriverInfo var1 = new DriverInfo();
  109.       var1.driver = var0;
  110.       var1.className = var0.getClass().getName();
  111.       var1.securityContext = getSecurityContext();
  112.       drivers.addElement(var1);
  113.       println("registerDriver: " + var1);
  114.    }
  115.  
  116.    public static void deregisterDriver(Driver var0) throws SQLException {
  117.       Object var1 = getSecurityContext();
  118.       println("DriverManager.deregisterDriver: " + var0);
  119.       DriverInfo var3 = null;
  120.  
  121.       int var2;
  122.       for(var2 = 0; var2 < drivers.size(); ++var2) {
  123.          var3 = (DriverInfo)drivers.elementAt(var2);
  124.          if (var3.driver == var0) {
  125.             break;
  126.          }
  127.       }
  128.  
  129.       if (var2 >= drivers.size()) {
  130.          println("    couldn't find driver to unload");
  131.       } else if (var1 != null && var3.securityContext != var1) {
  132.          throw new SecurityException();
  133.       } else {
  134.          drivers.removeElementAt(var2);
  135.       }
  136.    }
  137.  
  138.    public static Enumeration getDrivers() {
  139.       Vector var0 = new Vector();
  140.       if (!initialized) {
  141.          initialize();
  142.       }
  143.  
  144.       Object var1 = getSecurityContext();
  145.  
  146.       for(int var2 = 0; var2 < drivers.size(); ++var2) {
  147.          DriverInfo var3 = (DriverInfo)drivers.elementAt(var2);
  148.          if (var3.securityContext != null && var3.securityContext != var1) {
  149.             println("    skipping: " + var3);
  150.          } else {
  151.             var0.addElement(var3.driver);
  152.          }
  153.       }
  154.  
  155.       return var0.elements();
  156.    }
  157.  
  158.    public static void setLoginTimeout(int var0) {
  159.       loginTimeout = var0;
  160.    }
  161.  
  162.    public static int getLoginTimeout() {
  163.       return loginTimeout;
  164.    }
  165.  
  166.    public static void setLogStream(PrintStream var0) {
  167.       logStream = var0;
  168.    }
  169.  
  170.    public static PrintStream getLogStream() {
  171.       return logStream;
  172.    }
  173.  
  174.    public static void println(String var0) {
  175.       if (logStream != null) {
  176.          logStream.println(var0);
  177.       }
  178.  
  179.    }
  180.  
  181.    private static Object getSecurityContext() {
  182.       SecurityManager var0 = System.getSecurityManager();
  183.       return var0 == null ? null : var0.getSecurityContext();
  184.    }
  185.  
  186.    private static void loadInitialDrivers() {
  187.       String var0;
  188.       try {
  189.          var0 = System.getProperty("jdbc.drivers");
  190.       } catch (Exception var5) {
  191.          var0 = null;
  192.       }
  193.  
  194.       println("DriverManager.initialize: jdbc.drivers = " + var0);
  195.       if (var0 != null) {
  196.          while(var0.length() != 0) {
  197.             int var1 = var0.indexOf(58);
  198.             String var2;
  199.             if (var1 < 0) {
  200.                var2 = var0;
  201.                var0 = "";
  202.             } else {
  203.                var2 = var0.substring(0, var1);
  204.                var0 = var0.substring(var1 + 1);
  205.             }
  206.  
  207.             if (var2.length() != 0) {
  208.                try {
  209.                   println("DriverManager.Initialize: loading " + var2);
  210.                   Class.forName(var2);
  211.                } catch (Exception var4) {
  212.                   println("DriverManager.Initialize: load failed: " + var4);
  213.                }
  214.             }
  215.          }
  216.  
  217.       }
  218.    }
  219.  
  220.    static void initialize() {
  221.       if (!initialized) {
  222.          initialized = true;
  223.          loadInitialDrivers();
  224.          println("JDBC DriverManager initialized");
  225.       }
  226.    }
  227.  
  228.    private DriverManager() {
  229.    }
  230. }
  231.