boot/src/main/java/org/apidesign/html/boot/impl/FnUtils.java
changeset 188 5f3b1d7fafec
parent 184 6c0807571258
child 189 5c78e49bd297
     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  }