import java.lang.reflect.Method;
import java.lang.reflect.Modifier;/**
 * User: Dext
 * Date: 2005-2-11
 * Time: 13:42:29
 */
public class SeeMethods {
    public static void main(String[] args) {
        Class inspect;
        try {
            if (args.length > 0)
                inspect = Class.forName(args[0]);
            else
                inspect = Class.forName("SeeMethods");
            Method[] methods = inspect.getDeclaredMethods();
            for (int i = 0; i < methods.length; i++) {
                Method methVal = methods[i];
                Class returnVal = methVal.getReturnType();
                int mods = methVal.getModifiers();
                String modVal = Modifier.toString(mods);
                Class[] paramVal = methVal.getParameterTypes();
                StringBuffer params = new StringBuffer();
                for (int j = 0; j < paramVal.length; j++) {
                    if (j > 0)
                        params.append(", ");
                    params.append(paramVal[j].getName());
                }
                System.out.println("Method: " + methVal.getName());
                System.out.println("Modifers: " + modVal);
                System.out.println("Return Type: " + returnVal.getName());
                System.out.println("Parameters: " + params);
                System.out.println();
            }
        } catch (ClassNotFoundException e) {
            System.out.println(e.toString());
        }
    }
}