1 11 package org.eclipse.jdt.internal.debug.core.refactoring; 12 13 import java.util.List ; 14 15 import org.eclipse.core.resources.IMarker; 16 import org.eclipse.core.runtime.CoreException; 17 import org.eclipse.core.runtime.OperationCanceledException; 18 import org.eclipse.debug.core.model.IBreakpoint; 19 import org.eclipse.jdt.core.ICompilationUnit; 20 import org.eclipse.jdt.core.IJavaElement; 21 import org.eclipse.jdt.core.IPackageFragment; 22 import org.eclipse.jdt.core.IPackageFragmentRoot; 23 import org.eclipse.jdt.core.IType; 24 import org.eclipse.jdt.debug.core.IJavaBreakpoint; 25 import org.eclipse.jdt.internal.debug.ui.BreakpointUtils; 26 27 32 public class BreakpointRenamePackageParticipant extends BreakpointRenameParticipant { 33 34 37 protected boolean accepts(IJavaElement element) { 38 return element instanceof IPackageFragment; 39 } 40 41 44 protected void gatherChanges(IMarker[] markers, List changes, String destPackageName) throws CoreException, OperationCanceledException { 45 IPackageFragment originalPackage = (IPackageFragment) getOriginalElement(); 46 String originalPackageName = originalPackage.getElementName(); 47 IPackageFragmentRoot root = (IPackageFragmentRoot)originalPackage.getParent(); 48 for (int i = 0; i < markers.length; i++) { 49 IMarker marker = markers[i]; 50 IBreakpoint breakpoint = getBreakpoint(marker); 51 if (breakpoint instanceof IJavaBreakpoint) { 52 IJavaBreakpoint javaBreakpoint = (IJavaBreakpoint) breakpoint; 53 IType breakpointType = BreakpointUtils.getType(javaBreakpoint); 54 if (breakpointType != null) { 55 String breakpointPackageName = breakpointType.getPackageFragment().getElementName(); 56 String destBreakpointPackageName = destPackageName; 57 if (breakpointPackageName.length() > originalPackageName.length()) { 58 destBreakpointPackageName += breakpointPackageName.substring(originalPackageName.length()); 59 } 60 IPackageFragment destBreakpointPackage = root.getPackageFragment(destBreakpointPackageName); 61 ICompilationUnit cu = destBreakpointPackage.getCompilationUnit(breakpointType.getCompilationUnit().getElementName()); 62 IJavaElement element = BreakpointChange.findElement(cu, breakpointType); 63 if (element != null) { 64 if (element instanceof IType) { 65 IType destType = (IType) element; 66 changes.add(createTypeChange(javaBreakpoint, destType, breakpointType)); 67 } 68 } 69 } 70 } 71 } 72 } 73 74 } 75 | Popular Tags |