1 22 23 package org.aspectj.debugger.gui; 24 25 import org.aspectj.debugger.base.*; 26 27 import com.sun.jdi.ClassNotLoadedException; 28 import com.sun.jdi.Field; 29 import com.sun.jdi.InvalidTypeException; 30 import com.sun.jdi.ObjectReference; 31 import com.sun.jdi.ReferenceType; 32 import com.sun.jdi.ThreadReference; 33 import com.sun.jdi.Type; 34 import com.sun.jdi.Value; 35 36 public class AJMemberValueGetter implements AJValueGetter, FieldGetter { 37 38 private ObjectReference parent = null; 39 private Field field = null; 40 41 public AJMemberValueGetter(ObjectReference parent, Field field) { 42 this.parent = parent; 43 this.field = field; 44 } 45 46 public Value getValue() { 47 return parent.getValue(field); 48 } 49 50 public Value getValue(String s) { 51 return parent.getValue(field); 52 } 53 54 public void setValue(Value v) throws ClassNotLoadedException, 55 InvalidTypeException { 56 parent.setValue(field, v); 57 } 58 59 public ThreadReference getThread() throws ClassNotLoadedException { 60 try { 61 return parent.owningThread(); 62 } catch (Exception e) { Util.ex(e); } 63 return null; 64 } 65 66 public String getName() { 67 return refType().name() + "." + field.name(); 68 } 69 70 public Type getTypeRef() throws ClassNotLoadedException { 71 return field.type(); 72 } 73 74 public String getTypeName() throws ClassNotLoadedException { 75 return "" + field.type(); 76 } 77 78 public ReferenceType getDeclaringClass() { 79 return field.declaringType(); 80 } 81 82 public Field getField() { 83 return field; 84 } 85 86 private ReferenceType refType() { 87 return parent.referenceType(); 88 } 89 } 90 | Popular Tags |