Skip to content

Commit c2770e3

Browse files
author
zhourenjian
committed
Generate SimplePipeRunnable #deal based on given events
1 parent aab2d7e commit c2770e3

File tree

1 file changed

+74
-2
lines changed

1 file changed

+74
-2
lines changed

sources/net.sf.j2s.ajax/generator/net/sf/j2s/ajax/SimpleSource4Java.java

Lines changed: 74 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,11 @@
1313

1414
import java.io.File;
1515
import java.lang.reflect.Field;
16-
import java.lang.reflect.Method;
1716
import java.lang.reflect.Modifier;
1817
import java.lang.reflect.Type;
1918
import java.util.ArrayList;
19+
import java.util.Arrays;
20+
import java.util.Comparator;
2021
import java.util.Date;
2122
import java.util.HashSet;
2223
import java.util.Iterator;
@@ -31,6 +32,8 @@ public class SimpleSource4Java {
3132
static String author = "Author";
3233
static String company = "Company";
3334

35+
static Set<Class<?>> eventClasses = new HashSet<Class<?>>();
36+
3437
@SuppressWarnings("deprecation")
3538
public static String generateSourceFromInterface(Class<?> interfaceClazz) {
3639
StringBuffer source = new StringBuffer();
@@ -247,6 +250,7 @@ public static String generateSourceFromObject(SimpleSerializable s) {
247250
source.append(superClazzName);
248251
source.append(";\r\n");
249252
if (SimpleSerializable.isSubclassOf(superClazz, SimplePipeRunnable.class)) {
253+
/*
250254
Method[] methods = s.getClass().getMethods();
251255
if (methods != null) {
252256
for (int i = 0; i < methods.length; i++) {
@@ -263,6 +267,28 @@ public static String generateSourceFromObject(SimpleSerializable s) {
263267
}
264268
}
265269
}
270+
// */
271+
Class<?>[] evtClazzes = eventClasses.toArray(new Class<?>[eventClasses.size()]);
272+
Arrays.sort(evtClazzes, new Comparator<Class<?>>() {
273+
274+
public int compare(Class<?> c1, Class<?> c2) {
275+
String name1 = c1.getName();
276+
String name2 = c2.getName();
277+
return name1.compareTo(name2);
278+
}
279+
280+
});
281+
source.append("import net.sf.j2s.ajax.SimpleSerializable;\r\n");
282+
for (int i = 0; i < evtClazzes.length; i++) {
283+
Class<?> evtClazz = evtClazzes[i];
284+
String evtClazzName = evtClazz.getName();
285+
if ("net.sf.j2s.ajax.SimpleSerializable".equals(evtClazzName)) {
286+
continue;
287+
}
288+
source.append("import ");
289+
source.append(evtClazzName);
290+
source.append(";\r\n");
291+
}
266292
}
267293

268294
idx = superClazzName.lastIndexOf('.');
@@ -416,6 +442,7 @@ public static String generateSourceFromObject(SimpleSerializable s) {
416442
source.append("\t}\r\n");
417443
source.append("\r\n");
418444

445+
/*
419446
Method[] methods = s.getClass().getMethods();
420447
if (methods != null) {
421448
for (int i = 0; i < methods.length; i++) {
@@ -442,6 +469,34 @@ public static String generateSourceFromObject(SimpleSerializable s) {
442469
}
443470
}
444471
}
472+
// */
473+
Class<?>[] evtClazzes = eventClasses.toArray(new Class<?>[eventClasses.size()]);
474+
Arrays.sort(evtClazzes, new Comparator<Class<?>>() {
475+
476+
public int compare(Class<?> c1, Class<?> c2) {
477+
String name1 = c1.getSimpleName();
478+
String name2 = c2.getSimpleName();
479+
return name1.compareTo(name2);
480+
}
481+
482+
});
483+
for (int i = 0; i < evtClazzes.length; i++) {
484+
Class<?> evtClazz = evtClazzes[i];
485+
String evtClazzName = evtClazz.getName();
486+
if ("net.sf.j2s.ajax.SimpleSerializable".equals(evtClazzName)) {
487+
continue;
488+
}
489+
int paramIdx = evtClazzName.lastIndexOf('.');
490+
if (paramIdx != -1) {
491+
evtClazzName = evtClazzName.substring(paramIdx + 1);
492+
}
493+
source.append("\tpublic boolean deal(");
494+
source.append(evtClazzName);
495+
source.append(" e) {\r\n");
496+
source.append("\t\treturn true;\r\n");
497+
source.append("\t}\r\n");
498+
source.append("\r\n");
499+
}
445500
moreCodesAdded = true;
446501
} else if (s instanceof SimpleRPCRunnable) {
447502
source.append("\t@Override\r\n");
@@ -483,7 +538,24 @@ public static void main(String[] args) {
483538
folder = f.getName();
484539
author = args[1];
485540
company = args[2];
486-
541+
542+
for (int i = 1 + 2; i < args.length; i++) {
543+
String j2sSimpleClazz = args[i];
544+
try {
545+
Class<?> clazz = Class.forName(j2sSimpleClazz);
546+
if (clazz.isInterface()) {
547+
continue;
548+
}
549+
Object inst = clazz.newInstance();
550+
if (inst instanceof SimpleSerializable && !(inst instanceof SimpleRPCRunnable)) {
551+
eventClasses.add(clazz);
552+
}
553+
} catch (Throwable e) {
554+
System.out.println("Error: " + j2sSimpleClazz);
555+
e.printStackTrace();
556+
}
557+
}
558+
487559
for (int i = 1 + 2; i < args.length; i++) {
488560
String j2sSimpleClazz = args[i];
489561
try {

0 commit comments

Comments
 (0)