1dd140a22d90495045024334a91770acaad8e065ePeter Jensenimport java.io.File;
2dd140a22d90495045024334a91770acaad8e065ePeter Jensenimport java.io.PrintWriter;
3dd140a22d90495045024334a91770acaad8e065ePeter Jensen
4dd140a22d90495045024334a91770acaad8e065ePeter Jensenpublic class ClassGen {
5dd140a22d90495045024334a91770acaad8e065ePeter Jensen
6dd140a22d90495045024334a91770acaad8e065ePeter Jensen    public static void main(String... args) {
7dd140a22d90495045024334a91770acaad8e065ePeter Jensen
8dd140a22d90495045024334a91770acaad8e065ePeter Jensen	int start = 1;
9dd140a22d90495045024334a91770acaad8e065ePeter Jensen        int end =   8024;
10dd140a22d90495045024334a91770acaad8e065ePeter Jensen	int fields =   4;
11dd140a22d90495045024334a91770acaad8e065ePeter Jensen        int methods =   6;
12dd140a22d90495045024334a91770acaad8e065ePeter Jensen	if (args.length > 0) {
13dd140a22d90495045024334a91770acaad8e065ePeter Jensen	    start = Integer.parseInt(args[0]);
14dd140a22d90495045024334a91770acaad8e065ePeter Jensen        }
15dd140a22d90495045024334a91770acaad8e065ePeter Jensen	if (args.length > 1) {
16dd140a22d90495045024334a91770acaad8e065ePeter Jensen	    end = Integer.parseInt(args[1]);
17dd140a22d90495045024334a91770acaad8e065ePeter Jensen        }
18dd140a22d90495045024334a91770acaad8e065ePeter Jensen	if (args.length > 2) {
19dd140a22d90495045024334a91770acaad8e065ePeter Jensen	    fields = Integer.parseInt(args[2]);
20dd140a22d90495045024334a91770acaad8e065ePeter Jensen        }
21dd140a22d90495045024334a91770acaad8e065ePeter Jensen	if (args.length > 3) {
22dd140a22d90495045024334a91770acaad8e065ePeter Jensen	    methods = Integer.parseInt(args[3]);
23dd140a22d90495045024334a91770acaad8e065ePeter Jensen        }
24dd140a22d90495045024334a91770acaad8e065ePeter Jensen
25dd140a22d90495045024334a91770acaad8e065ePeter Jensen	for (int file = start; file <= end; file++) {
26dd140a22d90495045024334a91770acaad8e065ePeter Jensen            try {
27dd140a22d90495045024334a91770acaad8e065ePeter Jensen	        File f = new File("src/Clazz" + file + ".java");
28dd140a22d90495045024334a91770acaad8e065ePeter Jensen	        PrintWriter pw = new PrintWriter(f);
29dd140a22d90495045024334a91770acaad8e065ePeter Jensen		pw.println("class Clazz" + file + " {");
30dd140a22d90495045024334a91770acaad8e065ePeter Jensen		for (int field = 1; field <= fields; field++) {
31dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("    public static int f" + field + ";");
32dd140a22d90495045024334a91770acaad8e065ePeter Jensen		}
33dd140a22d90495045024334a91770acaad8e065ePeter Jensen		for (int method = 1; method <= methods; method++) {
34dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("    boolean m" + method + "_" + (file%(end/2)) + "() {"
35dd140a22d90495045024334a91770acaad8e065ePeter Jensen);
36dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("      int max = Thread.MAX_PRIORITY;");
37dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("      for (int i = 0; i < max; i++) {");
38dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("        System.out.println(\"Hello from: \" + Clazz"
39dd140a22d90495045024334a91770acaad8e065ePeter Jensen                            + file + ".class + \".method" + method
40dd140a22d90495045024334a91770acaad8e065ePeter Jensen                            + "() \" + Clazz" + (end-file+1) + ".f1);");
41dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("        Thread.dumpStack();");
42dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("      }");
43dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("      return Thread.holdsLock(this);");
44dd140a22d90495045024334a91770acaad8e065ePeter Jensen		    pw.println("    }");
45dd140a22d90495045024334a91770acaad8e065ePeter Jensen		}
46dd140a22d90495045024334a91770acaad8e065ePeter Jensen		pw.println("}");
47dd140a22d90495045024334a91770acaad8e065ePeter Jensen                pw.close();
48dd140a22d90495045024334a91770acaad8e065ePeter Jensen            } catch(Exception ex) {
49dd140a22d90495045024334a91770acaad8e065ePeter Jensen		System.out.println("Ups");
50dd140a22d90495045024334a91770acaad8e065ePeter Jensen            }
51dd140a22d90495045024334a91770acaad8e065ePeter Jensen        }
52dd140a22d90495045024334a91770acaad8e065ePeter Jensen    }
53dd140a22d90495045024334a91770acaad8e065ePeter Jensen}
54