KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > test > TestdataHandler


1 package test;
2
3 import java.io.File JavaDoc;
4 import java.io.FileNotFoundException JavaDoc;
5 import java.io.FileInputStream JavaDoc;
6 import java.io.BufferedInputStream JavaDoc;
7 import java.io.InputStreamReader JavaDoc;
8 import java.io.LineNumberReader JavaDoc;
9 import java.io.IOException JavaDoc;
10 import java.util.HashMap JavaDoc;
11
12 /**
13  *
14  */

15 public class TestdataHandler {
16    private static HashMap JavaDoc instMap = new HashMap JavaDoc();
17    public static TestdataHandler getInstance(String JavaDoc path) throws FileNotFoundException JavaDoc, IOException JavaDoc {
18       File JavaDoc file = new File JavaDoc(path);
19       path = file.getAbsolutePath();
20       TestdataHandler inst = (TestdataHandler)instMap.get(path);
21       if (inst == null) {
22          inst = new TestdataHandler(path);
23          instMap.put(path, inst);
24 // System.out.println(path);
25
}
26       return inst;
27    }
28
29    private File JavaDoc rnlogFile;
30 // private File originalJarFile;
31
// private File resultJarFile;
32

33    private HashMap JavaDoc renameClassMap = new HashMap JavaDoc();
34    private HashMap JavaDoc renameMethodMap = new HashMap JavaDoc();
35    private HashMap JavaDoc renameFieldMap = new HashMap JavaDoc();
36
37    private TestdataHandler(String JavaDoc path) throws FileNotFoundException JavaDoc, IOException JavaDoc {
38       if (path == null) {
39          throw new IllegalArgumentException JavaDoc("path must be NOT null.");
40       }
41       if (path.length() <= 0) {
42          throw new IllegalArgumentException JavaDoc("path must be 'path.length() > 0'.");
43       }
44       this.rnlogFile = new File JavaDoc(path + "_rnlog.txt");
45 // this.originalJarFile = new File(path + ".jar");
46
// this.resultJarFile = new File(path + "_s.jar");
47

48       setupRenameMap();
49    }
50
51    private void setupRenameMap() throws FileNotFoundException JavaDoc, IOException JavaDoc {
52       FileInputStream JavaDoc fin = new FileInputStream JavaDoc(this.rnlogFile);
53       LineNumberReader JavaDoc lnrd = new LineNumberReader JavaDoc(
54                                  new InputStreamReader JavaDoc(
55                                     new BufferedInputStream JavaDoc(fin)));
56       for (;;) {
57          String JavaDoc line = lnrd.readLine();
58          if (line == null) {
59             break;
60          }
61          if (line.length() <= 0) {
62             continue;
63          }
64          int n = line.indexOf("\t <- ", 0);
65          if (n > 0) {
66             String JavaDoc str1 = line.substring(0, n);
67             String JavaDoc str2 = line.substring(n+5); // n + "\t <- ".length();
68
if (str1.indexOf('!') > 0) {
69                // field
70
renameFieldMap.put(str2, str1);
71             } else if (str1.indexOf('#') > 0) {
72                // method
73
renameMethodMap.put(str2, str1);
74             } else {
75                // class
76
renameClassMap.put(str2, str1);
77             }
78          }
79       }
80       lnrd.close();
81    }
82
83    public String JavaDoc getNewClassNameByOld(String JavaDoc oldClassName) {
84       return (String JavaDoc)renameClassMap.get(oldClassName);
85    }
86
87    public String JavaDoc getNewMethodNameByOld(String JavaDoc oldMethodName) {
88       return (String JavaDoc)renameMethodMap.get(oldMethodName);
89    }
90
91    public String JavaDoc getNewFieldNameByOld(String JavaDoc oldFieldName) {
92       return (String JavaDoc)renameFieldMap.get(oldFieldName);
93    }
94 }
95
Popular Tags