reverting back to 1.20
[csql.git] / src / jdbc / JdbcSqlDriver.java
blobe559fefcc4ed4ebc4cdd920b06ed1cac386ab5e8
1 package csql.jdbc;
2 import java.util.Properties;
3 import java.util.StringTokenizer;
4 import java.sql.Driver;
5 import java.sql.DriverManager;
6 import java.sql.SQLException;
7 import java.sql.Connection;
8 import java.sql.DriverPropertyInfo;
10 public final class JdbcSqlDriver extends JSqlError implements Driver, JSqlErrorType
12 static
14 try
16 DriverManager.registerDriver(new JdbcSqlDriver());
18 catch (Exception e)
20 System.out.println ("CSql JDBC Driver: " + e);
23 public int mode;
24 public String hostname="localhost";
25 public int portno=5678;
26 public boolean acceptsURL(String url)
28 //pattern jdbc:csql:
29 String trimURL = url.toLowerCase().trim();
30 StringTokenizer tokens = new StringTokenizer(trimURL, ":", false);
31 int tokenNo =1;
32 while(tokens.hasMoreTokens())
34 String t = tokens.nextToken().trim();
35 switch(tokenNo)
37 case 1:
38 if( t.equalsIgnoreCase("jdbc") )
40 tokenNo++;
41 continue;
43 tokenNo=6;
44 break;
45 case 2:
46 if( t.equalsIgnoreCase("csql") )
48 tokenNo++;
49 mode = 1;
50 continue;
51 }else if (t.equalsIgnoreCase("gateway") )
53 tokenNo++;
54 mode = 2;
55 continue;
57 tokenNo=6;
58 break;
59 case 3 :
60 if(t.charAt(0)!='/' && t.charAt(1)!='/')
62 tokenNo=6;
63 break;
65 hostname = t.substring(2);
66 mode=3;
67 tokenNo++;
68 continue;
69 case 4 :
70 if(t.indexOf('/')!= -1)
72 String p=t.substring(0,t.indexOf('/'));
73 portno=Integer.parseInt(p);
75 }else { portno=Integer.parseInt(t);}
76 tokenNo++;
77 continue;
78 default:
79 tokenNo++;
80 break;
83 if(tokenNo > 5 ) return false;
84 return true;
87 public static String removeChar(String s, char c)
89 String r = "";
90 for (int i = 0; i < s.length(); i ++) {
91 if (s.charAt(i) != c) r += s.charAt(i);
93 return r;
95 public Connection connect(String connectString, Properties info) throws SQLException
97 String uName, pword;
99 if( info.isEmpty() )
100 throw getException(CSQL_AUTHEN_ERR);
102 if(!acceptsURL(connectString))
103 throw getException(CSQL_AUTHEN_ERR);
105 //System.loadLibrary("crypt");
106 //System.loadLibrary("csql");
107 //System.loadLibrary("csqlsql");
108 System.loadLibrary("csqljdbc");
110 uName = info.getProperty("user");
111 pword = info.getProperty("password");
112 JdbcSqlConnection con = new JdbcSqlConnection(mode,hostname,portno,uName, pword);
113 return((Connection) con);
115 public DriverPropertyInfo[] getPropertyInfo (String connectString,
116 java.util.Properties info ) throws SQLException
118 return null;
120 public int getMajorVersion()
122 return 1;
124 public int getMinorVersion()
126 return 0;
128 public boolean jdbcCompliant()
130 return false;