import java.util.* ; import java.lang.reflect.* ; public class InlineJavaUserClassLink { public InlineJavaUserClassLink(){ } public Object invoke(Method m, Object o, Object p[]) throws IllegalAccessException, IllegalArgumentException, InvocationTargetException { return m.invoke(o, p) ; } public Object get(Field f, Object o) throws IllegalAccessException, IllegalArgumentException { return f.get(o) ; } public void set(Field f, Object o, Object p) throws IllegalAccessException, IllegalArgumentException { f.set(o, p) ; } public Object array_get(Object o, Integer idx){ return Array.get(o, idx.intValue()) ; } public void array_set(Object o, Integer idx, Object elem) throws IllegalArgumentException { Array.set(o, idx.intValue(), elem) ; } public Object create(Class p, Object args[], Class proto[]) throws NoSuchMethodException, InstantiationException, IllegalAccessException, IllegalArgumentException, InvocationTargetException { // This will allow usage of the default no-arg constructor if (proto.length == 0){ return p.newInstance() ; } else{ Constructor con = (Constructor)p.getConstructor(proto) ; return con.newInstance(args) ; } } }