1 22 23 package org.aspectj.debugger.gui; 24 25 import org.aspectj.debugger.base.*; 26 27 import java.awt.datatransfer.DataFlavor ; 28 import java.awt.datatransfer.Transferable ; 29 import java.io.Serializable ; 30 import com.sun.jdi.InvalidTypeException; 31 import com.sun.jdi.Value; 32 33 import com.sun.jdi.*; 34 35 public class AJValueWrapper implements Transferable , 36 Serializable { 37 38 Object value = null; 39 40 public AJValueWrapper(Value value) { 41 this.value = wrap(value); 42 } 43 44 public Value unwrap() { 45 Value result = null; 46 try { 47 VirtualMachine vm = ComponentRepository.vm(); 48 if (value instanceof Byte ) { 49 result = vm.mirrorOf( ((Byte )value).byteValue() ); 50 } else if (value instanceof Character ) { 51 result = vm.mirrorOf(((Character )value).charValue()); 52 } else if (value instanceof Double ) { 53 result = vm.mirrorOf( ((Double )value).doubleValue() ); 54 } else if (value instanceof Float ) { 55 result = vm.mirrorOf( ((Float )value).floatValue() ); 56 } else if (value instanceof Integer ) { 57 result = vm.mirrorOf( ((Integer )value).intValue() ); 58 } else if (value instanceof Long ) { 59 result = vm.mirrorOf( ((Long )value).longValue() ); 60 } else if (value instanceof Short ) { 61 result = vm.mirrorOf( ((Short )value).shortValue() ); 62 } else if (value instanceof String ) { 63 result = vm.mirrorOf( ((String )value).toString() ); 64 } 65 } catch (DebuggerException e) { 66 } 67 return result; 68 } 69 70 private Object wrap(Value value) { 71 Object result = null; 72 if (value instanceof ByteValue) { 73 result = new Byte ( ((ByteValue)value).byteValue() ); 74 } else if (value instanceof CharValue) { 75 result = new Character ( ((CharValue)value).charValue() ); 76 } else if (value instanceof DoubleValue) { 77 result = new Double ( ((DoubleValue)value).doubleValue() ); 78 } else if (value instanceof FloatValue) { 79 result = new Float ( ((FloatValue)value).floatValue() ); 80 } else if (value instanceof IntegerValue) { 81 result = new Integer ( ((IntegerValue)value).intValue() ); 82 } else if (value instanceof LongValue) { 83 result = new Long ( ((LongValue)value).longValue() ); 84 } else if (value instanceof ShortValue) { 85 result = new Short ( ((ShortValue)value).shortValue() ); 86 } else if (value instanceof StringReference) { 87 result = new String ( ((StringReference)value).toString() ); 88 } 89 return result; 90 } 91 92 95 public Object getTransferData(DataFlavor flavor) { 97 return this; 98 } 99 100 public DataFlavor [] getTransferDataFlavors() { 101 return AJDataFlavor.FLAVORS; 102 } 103 104 public boolean isDataFlavorSupported(DataFlavor flavor) { 105 boolean ok = false; 106 if (flavor.getHumanPresentableName().equals("AJValueWrapper")) { 107 ok = true; 108 } 109 return ok; 110 } 111 } 112 | Popular Tags |