1 11 package org.eclipse.jdt.internal.debug.core.refactoring; 12 13 import java.text.MessageFormat ; 14 import java.util.Map ; 15 16 import org.eclipse.core.runtime.CoreException; 17 import org.eclipse.jdt.core.ISourceRange; 18 import org.eclipse.jdt.core.IType; 19 import org.eclipse.jdt.debug.core.IJavaClassPrepareBreakpoint; 20 import org.eclipse.jdt.debug.core.JDIDebugModel; 21 import org.eclipse.jdt.internal.debug.ui.BreakpointUtils; 22 import org.eclipse.ltk.core.refactoring.Change; 23 24 25 28 public class JavaClassPrepareBreakpointTypeChange extends JavaBreakpointTypeChange { 29 30 private int fMemberType; 31 32 public JavaClassPrepareBreakpointTypeChange(IJavaClassPrepareBreakpoint classPrepareBreakpoint, Object changedElement, Object argument, int changeType) throws CoreException { 33 super(classPrepareBreakpoint, changedElement, argument, changeType); 34 fMemberType= classPrepareBreakpoint.getMemberType(); 35 } 36 37 40 public String getErrorMessageNoMoreExists() { 41 return MessageFormat.format(RefactoringMessages.JavaClassPrepareBreakpointTypeChange_0, new String [] {getDeclaringType().getElementName()}); } 43 44 47 public String getName() { 48 return MessageFormat.format(RefactoringMessages.JavaClassPrepareBreakpointTypeChange_1, new String [] {getDeclaringType().getElementName()}); } 50 51 54 public Change performChange(IType newType, Object undoChangedElement, Object undoArgument, int changeType) throws CoreException { 55 Map attributes= getAttributes(); 56 BreakpointUtils.addJavaBreakpointAttributes(attributes, newType); 57 ISourceRange range= newType.getNameRange(); 58 int charStart= -1; 59 int charEnd= -1; 60 if (range != null) { 61 charStart= range.getOffset(); 62 charEnd= charStart + range.getLength(); 63 } 64 IJavaClassPrepareBreakpoint newClassPrepareBreakpoint= JDIDebugModel.createClassPrepareBreakpoint( 66 BreakpointUtils.getBreakpointResource(newType), 67 newType.getFullyQualifiedName(), 68 fMemberType, 69 charStart, 70 charEnd, 71 true, 72 attributes); 73 getBreakpoint().delete(); 75 return new JavaClassPrepareBreakpointTypeChange(newClassPrepareBreakpoint, undoChangedElement, undoArgument, changeType); 76 } 77 78 } 79 | Popular Tags |