*** empty log message ***
[csql.git] / src / jdbc / JdbcSqlDriver.java
blob8b766d1ab010cc39a0e2846a495efa6a837144d2
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;
56 }else if(t.equalsIgnoreCase("adapter"))
58 tokenNo++;
59 mode = 3;
60 continue;
62 tokenNo=6;
63 break;
64 case 3 :
65 if(t.charAt(0)!='/' && t.charAt(1)!='/')
67 tokenNo=6;
68 break;
70 hostname = t.substring(2);
71 if(mode==1){ mode=5;}
72 else if(mode==2){ mode=6;}
73 else if(mode==3){ mode=7;}
74 else {tokenNo=6;break;}
75 tokenNo++;
76 continue;
77 case 4 :
78 if(t.indexOf('/')!= -1)
80 String p=t.substring(0,t.indexOf('/'));
81 portno=Integer.parseInt(p);
83 }else { portno=Integer.parseInt(t);}
84 tokenNo++;
85 continue;
86 default:
87 tokenNo++;
88 break;
91 if((tokenNo !=3) && (tokenNo !=5) ) return false;
92 return true;
95 public static String removeChar(String s, char c)
97 String r = "";
98 for (int i = 0; i < s.length(); i ++) {
99 if (s.charAt(i) != c) r += s.charAt(i);
101 return r;
103 public Connection connect(String connectString, Properties info) throws SQLException
105 String uName, pword;
107 if( info.isEmpty() )
108 throw getException(CSQL_AUTHEN_ERR);
110 if(!acceptsURL(connectString))
111 throw getException(CSQL_AUTHEN_ERR);
113 //System.loadLibrary("crypt");
114 //System.loadLibrary("csql");
115 //System.loadLibrary("csqlsql");
116 System.loadLibrary("csqljdbc");
118 uName = info.getProperty("user");
119 pword = info.getProperty("password");
120 JdbcSqlConnection con = new JdbcSqlConnection(mode,hostname,portno,uName, pword);
121 con.setUrl(connectString);
122 return((Connection) con);
124 public DriverPropertyInfo[] getPropertyInfo (String connectString,
125 java.util.Properties info ) throws SQLException
127 return null;
129 public int getMajorVersion()
131 return 1;
133 public int getMinorVersion()
135 return 0;
137 public boolean jdbcCompliant()
139 return false;