home *** CD-ROM | disk | FTP | other *** search
/ Symantec Visual Cafe for Java 2.5 / symantec-visual-cafe-2.5-database-dev-edition.iso / Visual Cafe Pro v1.0 / VISCAFE.BIN / SQL.ZIP / symjava / sql / DriverManager.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-06-11  |  4.8 KB  |  314 lines

  1. package symjava.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.          String var2 = "DriverManager.getConnection(\"" + var0 + "\")";
  20.          if (logStream != null) {
  21.             logStream.println(var2);
  22.          }
  23.  
  24.          if (!initialized && !initialized) {
  25.             initialized = true;
  26.             loadInitialDrivers();
  27.             if (logStream != null) {
  28.                logStream.println("JDBC DriverManager initialized");
  29.             }
  30.          }
  31.  
  32.          Object var9 = getSecurityContext();
  33.          SQLException var3 = null;
  34.  
  35.          for(int var4 = 0; var4 < drivers.size(); ++var4) {
  36.             DriverInfo var5 = (DriverInfo)drivers.elementAt(var4);
  37.             if (var5.securityContext != null && var5.securityContext != var9) {
  38.                String var12 = "    skipping: " + var5;
  39.                if (logStream != null) {
  40.                   logStream.println(var12);
  41.                }
  42.             } else {
  43.                try {
  44.                   String var6 = "    trying " + var5;
  45.                   if (logStream != null) {
  46.                      logStream.println(var6);
  47.                   }
  48.  
  49.                   Connection var11 = var5.driver.connect(var0, var1);
  50.                   if (var11 != null) {
  51.                      String var7 = "getConnection returning " + var5;
  52.                      if (logStream != null) {
  53.                         logStream.println(var7);
  54.                      }
  55.  
  56.                      return var11;
  57.                   }
  58.                } catch (SQLException var8) {
  59.                   if (var3 == null) {
  60.                      var3 = var8;
  61.                   }
  62.                }
  63.             }
  64.          }
  65.  
  66.          if (var3 != null) {
  67.             String var10 = "getConnection failed: " + var3;
  68.             if (logStream != null) {
  69.                logStream.println(var10);
  70.             }
  71.  
  72.             throw var3;
  73.          } else {
  74.             if (logStream != null) {
  75.                logStream.println("getConnection: no suitable driver");
  76.             }
  77.  
  78.             throw new SQLException("No suitable driver", "08001");
  79.          }
  80.       }
  81.    }
  82.  
  83.    public static synchronized Connection getConnection(String var0, String var1, String var2) throws SQLException {
  84.       Properties var3 = new Properties();
  85.       if (var1 != null) {
  86.          ((Hashtable)var3).put("user", var1);
  87.       }
  88.  
  89.       if (var2 != null) {
  90.          ((Hashtable)var3).put("password", var2);
  91.       }
  92.  
  93.       return getConnection(var0, var3);
  94.    }
  95.  
  96.    public static synchronized Connection getConnection(String var0) throws SQLException {
  97.       Properties var1 = new Properties();
  98.       return getConnection(var0, var1);
  99.    }
  100.  
  101.    public static Driver getDriver(String var0) throws SQLException {
  102.       String var1 = "DriverManager.getDriver(\"" + var0 + "\")";
  103.       if (logStream != null) {
  104.          logStream.println(var1);
  105.       }
  106.  
  107.       if (!initialized && !initialized) {
  108.          initialized = true;
  109.          loadInitialDrivers();
  110.          if (logStream != null) {
  111.             logStream.println("JDBC DriverManager initialized");
  112.          }
  113.       }
  114.  
  115.       Object var6 = getSecurityContext();
  116.  
  117.       for(int var2 = 0; var2 < drivers.size(); ++var2) {
  118.          DriverInfo var3 = (DriverInfo)drivers.elementAt(var2);
  119.          if (var3.securityContext != null && var3.securityContext != var6) {
  120.             String var8 = "    skipping: " + var3;
  121.             if (logStream != null) {
  122.                logStream.println(var8);
  123.             }
  124.          } else {
  125.             try {
  126.                String var4 = "    trying " + var3;
  127.                if (logStream != null) {
  128.                   logStream.println(var4);
  129.                }
  130.  
  131.                if (var3.driver.acceptsURL(var0)) {
  132.                   var4 = "getDriver returning " + var3;
  133.                   if (logStream != null) {
  134.                      logStream.println(var4);
  135.                   }
  136.  
  137.                   return var3.driver;
  138.                }
  139.             } catch (SQLException var5) {
  140.             }
  141.          }
  142.       }
  143.  
  144.       if (logStream != null) {
  145.          logStream.println("getDriver: no suitable driver");
  146.       }
  147.  
  148.       throw new SQLException("No suitable driver", "08001");
  149.    }
  150.  
  151.    public static synchronized void registerDriver(Driver var0) throws SQLException {
  152.       if (!initialized && !initialized) {
  153.          initialized = true;
  154.          loadInitialDrivers();
  155.          if (logStream != null) {
  156.             logStream.println("JDBC DriverManager initialized");
  157.          }
  158.       }
  159.  
  160.       DriverInfo var1 = new DriverInfo();
  161.       var1.driver = var0;
  162.       var1.className = var0.getClass().getName();
  163.       var1.securityContext = getSecurityContext();
  164.       drivers.addElement(var1);
  165.       String var2 = "registerDriver: " + var1;
  166.       if (logStream != null) {
  167.          logStream.println(var2);
  168.       }
  169.  
  170.    }
  171.  
  172.    public static void deregisterDriver(Driver var0) throws SQLException {
  173.       Object var1 = getSecurityContext();
  174.       String var2 = "DriverManager.deregisterDriver: " + var0;
  175.       if (logStream != null) {
  176.          logStream.println(var2);
  177.       }
  178.  
  179.       DriverInfo var3 = null;
  180.  
  181.       for(var4 = 0; var4 < drivers.size(); ++var4) {
  182.          var3 = (DriverInfo)drivers.elementAt(var4);
  183.          if (var3.driver == var0) {
  184.             break;
  185.          }
  186.       }
  187.  
  188.       if (var4 >= drivers.size()) {
  189.          if (logStream != null) {
  190.             logStream.println("    couldn't find driver to unload");
  191.          }
  192.  
  193.       } else if (var1 != null && var3.securityContext != var1) {
  194.          throw new SecurityException();
  195.       } else {
  196.          drivers.removeElementAt(var4);
  197.       }
  198.    }
  199.  
  200.    public static Enumeration getDrivers() {
  201.       Vector var0 = new Vector();
  202.       if (!initialized && !initialized) {
  203.          initialized = true;
  204.          loadInitialDrivers();
  205.          if (logStream != null) {
  206.             logStream.println("JDBC DriverManager initialized");
  207.          }
  208.       }
  209.  
  210.       Object var1 = getSecurityContext();
  211.  
  212.       for(int var2 = 0; var2 < drivers.size(); ++var2) {
  213.          DriverInfo var3 = (DriverInfo)drivers.elementAt(var2);
  214.          if (var3.securityContext != null && var3.securityContext != var1) {
  215.             String var4 = "    skipping: " + var3;
  216.             if (logStream != null) {
  217.                logStream.println(var4);
  218.             }
  219.          } else {
  220.             var0.addElement(var3.driver);
  221.          }
  222.       }
  223.  
  224.       return var0.elements();
  225.    }
  226.  
  227.    public static void setLoginTimeout(int var0) {
  228.       loginTimeout = var0;
  229.    }
  230.  
  231.    public static int getLoginTimeout() {
  232.       return loginTimeout;
  233.    }
  234.  
  235.    public static void setLogStream(PrintStream var0) {
  236.       logStream = var0;
  237.    }
  238.  
  239.    public static PrintStream getLogStream() {
  240.       return logStream;
  241.    }
  242.  
  243.    public static void println(String var0) {
  244.       if (logStream != null) {
  245.          logStream.println(var0);
  246.       }
  247.  
  248.    }
  249.  
  250.    private static Object getSecurityContext() {
  251.       SecurityManager var0 = System.getSecurityManager();
  252.       return var0 == null ? null : var0.getSecurityContext();
  253.    }
  254.  
  255.    private static void loadInitialDrivers() {
  256.       String var0;
  257.       try {
  258.          var0 = System.getProperty("jdbc.drivers");
  259.       } catch (Exception var5) {
  260.          var0 = null;
  261.       }
  262.  
  263.       String var1 = "DriverManager.initialize: jdbc.drivers = " + var0;
  264.       if (logStream != null) {
  265.          logStream.println(var1);
  266.       }
  267.  
  268.       if (var0 != null) {
  269.          while(var0.length() != 0) {
  270.             int var7 = var0.indexOf(58);
  271.             String var2;
  272.             if (var7 < 0) {
  273.                var2 = var0;
  274.                var0 = "";
  275.             } else {
  276.                var2 = var0.substring(0, var7);
  277.                var0 = var0.substring(var7 + 1);
  278.             }
  279.  
  280.             if (var2.length() != 0) {
  281.                try {
  282.                   String var3 = "DriverManager.Initialize: loading " + var2;
  283.                   if (logStream != null) {
  284.                      logStream.println(var3);
  285.                   }
  286.  
  287.                   Class.forName(var2);
  288.                } catch (Exception var6) {
  289.                   String var4 = "DriverManager.Initialize: load failed: " + var6;
  290.                   if (logStream != null) {
  291.                      logStream.println(var4);
  292.                   }
  293.                }
  294.             }
  295.          }
  296.  
  297.       }
  298.    }
  299.  
  300.    static void initialize() {
  301.       if (!initialized) {
  302.          initialized = true;
  303.          loadInitialDrivers();
  304.          if (logStream != null) {
  305.             logStream.println("JDBC DriverManager initialized");
  306.          }
  307.  
  308.       }
  309.    }
  310.  
  311.    private DriverManager() {
  312.    }
  313. }
  314.