-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathJavaClassGenerator.java
More file actions
102 lines (85 loc) · 2.53 KB
/
JavaClassGenerator.java
File metadata and controls
102 lines (85 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
package generator;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
public class JavaClassGenerator {
public static final String path = "src\\generated\\";
private final String className;
private BufferedWriter bw;
public JavaClassGenerator(String name) {
className = name;
File f = new File(path + className +".java");
try {
if (!f.exists())
f.createNewFile();
bw= new BufferedWriter(new FileWriter(f));
} catch (IOException e) {
System.err.println("Can't create file " + f.getName() + ":\n" + f.getAbsolutePath());
}
}
public void generateStart() throws IOException{
if (bw == null) return;
bw.append("package generated;\n\n");
bw.append("public class "+ className +" {\n\n");
}
public void openMainMethod() throws IOException{
if (bw == null) return;
bw.append("\n\tpublic static void main(String[] args) {\n");
}
public void openMethod(String name, String... args) throws IOException{
if (bw == null) return;
bw.append("\n\tprivate static void "+name+"(");
for (int i = 0; i < args.length-2; i=i+2) {
bw.append(args[i]+" "+ args[i+1] + ", ");
}
if (args.length > 0){
bw.append(args[args.length-2]+" "+ args[args.length-1]);
}
bw.append("){\n");
}
public void closeMethod() throws IOException{
bw.append("\t}\n");
}
public void generateEnd() throws IOException {
if (bw == null) return;
bw.append("}");
bw.flush();
bw.close();
}
public void generateDefault(){
try {
generateStart();
bw.append(defaultBody());
generateEnd();
} catch (IOException e) {
e.printStackTrace();
}
}
public void generateMainBody(List<String> list) throws IOException {
openMainMethod();
if (bw == null) return;
for (int i = 0; i < list.size(); i++) {
bw.append("\t\t"+list.get(i)+"\n");
}
closeMethod();
}
private static String defaultBody() {
StringBuffer sb = new StringBuffer();
sb.append("\tpublic static void main(String[] args) {\n");
sb.append("\t\tSystem.out.println(\"Hello WORLD!!!\");\n");
sb.append("\t}\n");
return sb.toString();
}
public static void main(String[] args) {
JavaClassGenerator jcg = new JavaClassGenerator("HelloWorld");
jcg.generateDefault();
}
public void generateMethods(List<String> list) throws IOException {
if (bw == null) return;
for (int i = 0; i < list.size(); i++) {
bw.append("\t"+list.get(i)+"\n");
}
}
}