1 30 31 35 36 package jbet.cmd; 37 import jbet.*; 38 import java.io.*; 39 import java.util.*; 40 41 class delete implements Command 42 { 43 public int helplevel() { return 1; } 44 public String shorthelp() { return "delete a method or field from a class"; } 45 public String longhelp() { 46 return 47 "jbet delete <class>.<field>\t\t\n"; } 48 49 public void run (Lexer lexer) throws Exception 50 { 51 lexer.match(Token.END_OF_OPTS); 52 Thing t = lexer.parse_element_with_default (Jbet.default_class, true); 53 lexer.term(); 54 dodelete (t.cls, t.name, t.elem); 55 } 56 57 void dodelete(String cname, String mname, String type) throws Exception { 59 ClassInfo cr = Jbet.loader.getClass(cname); 60 MethodInfo mi = cr.findMethod(mname, type); 61 if (mi != null) { 62 cr.removeMethod (mi); 63 Jbet.info.println("removed method " + 64 Util.methString(cname, mname, mi.descriptor.toString())); 65 cr.setDirty(); 66 return; 67 } 68 FieldInfo fi = cr.findField(mname); 69 if (fi != null) { 70 cr.removeField(fi); 71 Jbet.info.println("removed field " + cname + "." + mname); 72 cr.setDirty(); 73 return; 74 } 75 throw new GlobalException (cname + " has no member named " + mname + 76 ((type==null) ? "" : (":" + type)) ); 77 } 78 } 79 | Popular Tags |