samer@0: package eg.util; samer@0: import samer.core.*; samer@0: import samer.core.shells.*; samer@0: import samer.core.types.*; samer@0: import samer.core.Agent.*; samer@0: import java.lang.reflect.*; samer@0: import java.util.*; samer@0: samer@0: public class ClassInfo implements Agent, Observer samer@0: { samer@0: VString clname = new VString("class"); samer@0: VBoolean all = new VBoolean("all",false);; samer@0: Class cl; samer@0: samer@0: public ClassInfo() samer@0: { samer@0: clname.addObserver(this); samer@0: all.addObserver(this); samer@0: Shell.register(this); samer@0: Shell.exposeCommands(this); samer@0: } samer@0: samer@0: public void getCommands(Registry r) { samer@0: r.add("class").add("interfaces") samer@0: .add("methods").add("fields").add("superclass") samer@0: .add("verbose", all.value); samer@0: } samer@0: samer@0: public void execute(String cmd, Environment env) throws Exception samer@0: { samer@0: if (cmd.equals("class")) { samer@0: clname.value = X.string(env.datum(),clname.value); samer@0: clname.changed(); samer@0: } else if (cmd.equals("methods")) { samer@0: Method mths[]; samer@0: samer@0: if (all.value) mths = cl.getMethods(); samer@0: else mths = cl.getDeclaredMethods(); samer@0: samer@0: Shell.print("Methods: "); samer@0: for (int i=0;i