tons of stuff
[org.ibex.classgen.git] / src / org / ibex / classgen / MethodRef.java
diff --git a/src/org/ibex/classgen/MethodRef.java b/src/org/ibex/classgen/MethodRef.java
new file mode 100644 (file)
index 0000000..cb546bd
--- /dev/null
@@ -0,0 +1,24 @@
+package org.ibex.classgen;
+
+public class MethodRef extends ClassGen.FieldMethodRef {
+    public MethodRef(Type.Object c, ClassGen.NameAndType t) { super(c,t); }
+    public MethodRef(Type.Object c, String name, String descriptor) {
+        this(c,new ClassGen.NameAndType(name,descriptor));
+    }
+    public MethodRef(Type.Object c, String name, Type ret, Type[] args) {
+        this(c,name,getDescriptor(ret,args));
+    }
+    public MethodRef(String s, String name, Type ret, Type[] args) {
+        this(new Type.Object(s),name,ret,args);
+    }
+    
+    static String getDescriptor(Type ret, Type[] args) {
+        StringBuffer sb = new StringBuffer(args.length*4);
+        sb.append("(");
+        for(int i=0;i<args.length;i++) sb.append(args[i].getDescriptor());
+        sb.append(")");
+        sb.append(ret.getDescriptor());
+        return sb.toString();
+    }
+}
+