1 11 package org.eclipse.jdt.internal.debug.core.refactoring; 12 13 import java.util.HashMap ; 14 import java.util.Map ; 15 16 import org.eclipse.core.resources.IResource; 17 import org.eclipse.core.runtime.CoreException; 18 import org.eclipse.core.runtime.IProgressMonitor; 19 import org.eclipse.jdt.core.IField; 20 import org.eclipse.jdt.core.IType; 21 import org.eclipse.jdt.debug.core.IJavaWatchpoint; 22 import org.eclipse.jdt.debug.core.JDIDebugModel; 23 import org.eclipse.jdt.internal.debug.ui.BreakpointUtils; 24 import org.eclipse.ltk.core.refactoring.Change; 25 26 import com.ibm.icu.text.MessageFormat; 27 28 32 public class WatchpointTypeChange extends WatchpointChange { 33 34 private IType fDestType, fOriginalType; 35 36 public WatchpointTypeChange(IJavaWatchpoint watchpoint, IType destType, IType originalType) throws CoreException { 37 super(watchpoint); 38 fDestType = destType; 39 fOriginalType = originalType; 40 } 41 42 45 public String getName() { 46 String msg = MessageFormat.format(RefactoringMessages.WatchpointTypeChange_1, new String [] {getBreakpointLabel(getOriginalBreakpoint())}); 47 if(!"".equals(fDestType.getElementName())) { msg = MessageFormat.format(RefactoringMessages.WatchpointTypeChange_0, 49 new String [] {getBreakpointLabel(getOriginalBreakpoint()), fDestType.getElementName()}); 50 } 51 return msg; 52 } 53 54 57 public Change perform(IProgressMonitor pm) throws CoreException { 58 IField destField = fDestType.getField(getFieldName()); 59 Map map = new HashMap (); 60 BreakpointUtils.addJavaBreakpointAttributes(map, destField); 61 IResource resource = BreakpointUtils.getBreakpointResource(destField); 62 int[] range = getNewLineNumberAndRange(destField); 63 IJavaWatchpoint breakpoint = JDIDebugModel.createWatchpoint( 64 resource, 65 fDestType.getFullyQualifiedName(), 66 getFieldName(), 67 range[0], 68 range[1], 69 range[2], 70 getHitCount(), 71 true, 72 map); 73 apply(breakpoint); 74 getOriginalBreakpoint().delete(); 75 return new DeleteBreakpointChange(breakpoint); 76 } 77 78 public IType getDestinationType() { 79 return fDestType; 80 } 81 82 public IType getOriginalType() { 83 return fOriginalType; 84 } 85 86 } 87 | Popular Tags |