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.IType; 20 import org.eclipse.jdt.debug.core.IJavaLineBreakpoint; 21 import org.eclipse.jdt.debug.core.JDIDebugModel; 22 import org.eclipse.jdt.internal.debug.ui.BreakpointUtils; 23 import org.eclipse.ltk.core.refactoring.Change; 24 25 import com.ibm.icu.text.MessageFormat; 26 27 31 public class LineBreakpointTypeChange extends LineBreakpointChange { 32 33 private IType fDestType; 34 35 public LineBreakpointTypeChange(IJavaLineBreakpoint breakpoint, IType destType) throws CoreException { 36 super(breakpoint); 37 fDestType = destType; 38 } 39 40 43 public String getName() { 44 String msg = MessageFormat.format(RefactoringMessages.LineBreakpointTypeChange_1, new String [] {getBreakpointLabel(getOriginalBreakpoint())}); 45 if(!"".equals(fDestType.getElementName())) { msg = MessageFormat.format(RefactoringMessages.LineBreakpointTypeChange_0, 47 new String [] {getBreakpointLabel(getOriginalBreakpoint()), fDestType.getElementName()}); 48 } 49 return msg; 50 } 51 52 55 public Change perform(IProgressMonitor pm) throws CoreException { 56 IResource resource = BreakpointUtils.getBreakpointResource(fDestType); 57 Map map = new HashMap (); 58 BreakpointUtils.addJavaBreakpointAttributes(map, fDestType); 59 IJavaLineBreakpoint breakpoint = JDIDebugModel.createLineBreakpoint( 60 resource, 61 fDestType.getFullyQualifiedName(), 62 getLineNumber(), 63 getCharStart(), 64 getCharEnd(), 65 0, 66 true, 67 map); 68 apply(breakpoint); 69 getOriginalBreakpoint().delete(); 70 return new DeleteBreakpointChange(breakpoint); 71 } 72 73 } 74 | Popular Tags |