misc cleanup and javadoc comments
[org.ibex.classgen.git] / src / org / ibex / classgen / MethodRef.java
index c866adc..75d58f3 100644 (file)
@@ -1,9 +1,21 @@
 package org.ibex.classgen;
 
+/** This class represents Method references. It is used as an argument to the 
+    INVOKESTATIC, INVOKEVIRTUAL, INVOKESPEICAL, and INVOKEINTERFACE bytecodes 
+    @see CGConst#INVOKESTATIC
+    @see CGConst#INVOKEVIRTUAL
+    @see CGConst#INVOKESPECIAL
+    @see CGConst#INVOKEINTERFACE
+*/
 public class MethodRef extends ClassGen.FieldOrMethodRef {
+    /** Create a reference to method <i>name</i> of class <i>c</i> with the return type <i>ret</i> and the
+        arguments <i>args</i> */
     public MethodRef(Type.Object c, String name, Type ret, Type[] args) {
         super(c,name,getDescriptor(ret,args));
     }
+    /** Equivalent to MethodRef(new Type.Object(s),...)
+        @see #MethodRef(Type.Object,String,Type,Type[])
+    */
     public MethodRef(String s, String name, Type ret, Type[] args) {
         this(new Type.Object(s),name,ret,args);
     }
@@ -18,6 +30,10 @@ public class MethodRef extends ClassGen.FieldOrMethodRef {
         return sb.toString();
     }
     
+    /** MethodRef class used for the INVOKEINTERFACE bytecode. Although this contains the same
+        data as a normal MethodRef, these are treated differently in the byte code format. In general,
+        users don't need to be concerned with this though because MethodRef's are automatically converted
+        to MethodRef.I's when they are applied to an INVOKEINTERFACE bytecode */
     public static class I extends MethodRef {
         public I(Type.Object c, String name, Type ret, Type[] args) { super(c,name,ret,args); }
         public I(String s, String name, Type ret, Type[] args) { super(s,name,ret,args); }