1.1 --- a/boot/src/main/java/org/apidesign/html/boot/impl/FnUtils.java Thu Jul 11 14:04:37 2013 +0200
1.2 +++ b/boot/src/main/java/org/apidesign/html/boot/impl/FnUtils.java Thu Jul 11 17:58:45 2013 +0200
1.3 @@ -23,7 +23,6 @@
1.4 import java.io.InputStream;
1.5 import java.io.InputStreamReader;
1.6 import java.io.Reader;
1.7 -import java.lang.reflect.Method;
1.8 import java.net.URL;
1.9 import java.util.ArrayList;
1.10 import java.util.Collections;
1.11 @@ -83,44 +82,10 @@
1.12 protected CharSequence callMethod(
1.13 String ident, String fqn, String method, String params
1.14 ) {
1.15 - try {
1.16 - StringBuilder sb = new StringBuilder();
1.17 - sb.append(ident);
1.18 - if (fqn.equals(ownName.replace('/', '.'))) {
1.19 - if (!ownMethods.containsKey(method + params)) {
1.20 - throw new IllegalStateException("Wrong reference to " + method + params);
1.21 - }
1.22 - sb.append("['").append(method).append("(");
1.23 - final Type[] argTps = Type.getArgumentTypes(params);
1.24 - Class<?>[] argCls = new Class<?>[argTps.length];
1.25 - String sep = "";
1.26 - for (int i = 0; i < argCls.length; i++) {
1.27 - sb.append(sep).append(toClass(argTps[i], loader).getName());
1.28 - sep = ",";
1.29 - }
1.30 - sb.append(")']");
1.31 - } else {
1.32 - Class<?> clazz = Class.forName(fqn, false, loader);
1.33 - final Type[] argTps = Type.getArgumentTypes(params);
1.34 - Class<?>[] argCls = new Class<?>[argTps.length];
1.35 - for (int i = 0; i < argCls.length; i++) {
1.36 - argCls[i] = toClass(argTps[i], loader);
1.37 - }
1.38 - Method m = clazz.getMethod(method, argCls);
1.39 - sb.append("['").append(m.getName()).append("(");
1.40 - String sep = "";
1.41 - for (Class<?> pt : m.getParameterTypes()) {
1.42 - sb.append(sep).append(pt.getName());
1.43 - sep = ",";
1.44 - }
1.45 - sb.append(")']");
1.46 - }
1.47 - return sb;
1.48 - } catch (ClassNotFoundException ex) {
1.49 - throw new IllegalStateException("Can't parse " + body, ex);
1.50 - } catch (NoSuchMethodException ex) {
1.51 - throw new IllegalStateException("Can't parse " + body, ex);
1.52 - }
1.53 + StringBuilder sb = new StringBuilder();
1.54 + sb.append("vm.").append(mangle(fqn, method, params));
1.55 + sb.append("(").append(ident);
1.56 + return sb;
1.57 }
1.58
1.59 }.parse(body);
1.60 @@ -145,26 +110,4 @@
1.61 throw new IllegalStateException("Can't execute " + resource, ex);
1.62 }
1.63 }
1.64 - static Class<?> toClass(final Type t, ClassLoader loader) throws ClassNotFoundException {
1.65 - if (t == Type.INT_TYPE) {
1.66 - return Integer.TYPE;
1.67 - } else if (t == Type.VOID_TYPE) {
1.68 - return Void.TYPE;
1.69 - } else if (t == Type.BOOLEAN_TYPE) {
1.70 - return Boolean.TYPE;
1.71 - } else if (t == Type.BYTE_TYPE) {
1.72 - return Byte.TYPE;
1.73 - } else if (t == Type.CHAR_TYPE) {
1.74 - return Character.TYPE;
1.75 - } else if (t == Type.SHORT_TYPE) {
1.76 - return Short.TYPE;
1.77 - } else if (t == Type.DOUBLE_TYPE) {
1.78 - return Double.TYPE;
1.79 - } else if (t == Type.FLOAT_TYPE) {
1.80 - return Float.TYPE;
1.81 - } else if (t == Type.LONG_TYPE) {
1.82 - return Long.TYPE;
1.83 - }
1.84 - return Class.forName(t.getClassName(), false, loader);
1.85 - }
1.86 }