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.ISourceRange; 20 import org.eclipse.jdt.core.IType; 21 import org.eclipse.jdt.debug.core.IJavaClassPrepareBreakpoint; 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 ClassPrepareBreakpointTypeChange extends ClassPrepareBreakpointChange { 33 34 private IType fDestType; 35 36 public ClassPrepareBreakpointTypeChange(IJavaClassPrepareBreakpoint breakpoint, IType destType) throws CoreException { 37 super(breakpoint); 38 fDestType = destType; 39 } 40 41 44 public String getName() { 45 return MessageFormat.format(RefactoringMessages.ClassPrepareBreakpointTypeChange_0, 46 new String [] {getBreakpointLabel(getOriginalBreakpoint()), fDestType.getElementName()}); 47 } 48 49 52 public Change perform(IProgressMonitor pm) throws CoreException { 53 IResource resource = BreakpointUtils.getBreakpointResource(fDestType); 54 Map map = new HashMap (); 55 BreakpointUtils.addJavaBreakpointAttributes(map, fDestType); 56 ISourceRange range = fDestType.getNameRange(); 58 IJavaClassPrepareBreakpoint breakpoint = JDIDebugModel.createClassPrepareBreakpoint( 59 resource, 60 fDestType.getFullyQualifiedName(), 61 getMemberType(), 62 range.getOffset(), 63 range.getOffset() + range.getLength(), 64 true, 65 map); 66 apply(breakpoint); 67 getOriginalBreakpoint().delete(); 68 return new DeleteBreakpointChange(breakpoint); 69 } 70 71 } 72 | Popular Tags |