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