KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > daffodilwoods > daffodildb > utils > QueryUtility


1 package com.daffodilwoods.daffodildb.utils;
2 /*
3  * QueryUtility.java
4  *
5  * Created on June 16, 2002, 7:20 PM
6  */

7
8 /**
9  *
10  * @author siddharthhooda
11  * @version
12  */

13 import java.util.*;
14 import java.io.*;
15 public class QueryUtility {
16
17     File mainFile;
18     /** Creates new QueryUtility */
19     public QueryUtility(File mainFile) {
20         this.mainFile = mainFile;
21     }
22
23     public void save(String JavaDoc query, Object JavaDoc[] parameters) throws Exception JavaDoc{
24         RandomAccessFile file = new RandomAccessFile(mainFile, "rw");
25         file.seek(file.length());
26         file.writeBytes("query:"+query+"\n");
27
28         if(parameters != null) {
29             int length = parameters.length;
30             String JavaDoc writeableParameters = "";
31             for(int i = 0 ; i < length ; i++) {
32                if( parameters[i] != null )
33                   writeableParameters += parameters[i].getClass()+"("+parameters[i]+"),";
34                else
35                   writeableParameters += " null ,";
36             }
37             file.writeBytes("parameters:"+writeableParameters+"\n"); }
38         else
39             file.writeBytes("parameters:\n");
40     }
41
42     public Object JavaDoc[] getQueriesAndParameters() throws Exception JavaDoc {
43         ArrayList queriesNparameters = new ArrayList(5);
44         RandomAccessFile file = new RandomAccessFile(mainFile, "r");
45         Object JavaDoc[] both = new Object JavaDoc[2];
46         String JavaDoc query = file.readLine();
47         while(query != null) {
48             if(query.startsWith("query:")) {
49                 both = new Object JavaDoc[2];
50                 both[0] = query.substring(6);
51             }
52             else {
53                 Object JavaDoc parameters = null;
54                 query = query.substring(11);
55                 StringTokenizer tokenizer = new StringTokenizer(query, ",");
56                 int tokenCount = tokenizer.countTokens();
57                 Object JavaDoc[] obj = new Object JavaDoc[tokenCount];
58                 int i = 0;
59                 while(tokenizer.hasMoreElements()) {
60                     String JavaDoc str = tokenizer.nextToken();
61                     obj[i++] = convertObject(str);
62                 }
63                 parameters = obj;
64                 both[1] = parameters;
65                 queriesNparameters.add(both);
66             }
67             query = file.readLine();
68         }
69         return queriesNparameters.toArray();
70     }
71
72     private Object JavaDoc convertObject(String JavaDoc str){
73       int index = str.indexOf('(');
74       if( index == -1 ) return null;
75
76       String JavaDoc classname = str.substring(0,index).trim();
77       String JavaDoc param = str.substring(index+1,str.length()-1).trim();
78
79       if( classname.indexOf("java.lang.Integer") != -1)
80          return new Integer JavaDoc(param);
81       if( classname.indexOf("java.lang.Long") != -1)
82          return new Long JavaDoc(param);
83       if( classname.indexOf("java.lang.String") != -1)
84          return param;
85       if( classname.indexOf("java.lang.Double") != -1)
86          return new Double JavaDoc(param);
87       if( classname.indexOf("java.lang.Boolean") != -1)
88          return new Boolean JavaDoc(param);
89       throw new RuntimeException JavaDoc("Make provision in convert object of QueryUtility for class ::" + classname);
90     }
91
92 /*
93     public static void main(String af[]){
94       try {
95         QueryUtility temp = new QueryUtility(new File("pradeep.txt"));
96         Object[] objectarray = temp.getQueriesAndParameters();
97         for(int i=0;i<objectarray.length; i++) {
98           Object[] obj = (Object[])objectarray[i];
99           String query = (String)obj[0];
100           Object[] parameters = (Object[])obj[1];
101           for(int j=0;j<parameters.length; j++){
102          ;//// Removed By Program ** System.out.println("parametrs["+j+"] = "+parameters[j].toString());
103           }
104         }
105       }
106       catch(Exception e){
107         e.printStackTrace();
108       }
109     }
110       /*/

111 }
112
Popular Tags