IMethod topmost= MethodChecks.getTopmostMethod(getMethod(), hierarchy, monitor);
IMethod topmost= getMethod(); if (MethodChecks.isVirtual(topmost)) topmost= MethodChecks.getTopmostMethod(getMethod(), hierarchy, monitor);
	public RefactoringStatus checkInitialConditions(IProgressMonitor monitor) throws CoreException {		RefactoringStatus result= super.checkInitialConditions(monitor);		if (result.hasFatalError())			return result;		try{			monitor.beginTask("", 3); //$NON-NLS-1$			if (!fActivationChecked) {				// the following code may change the method to be changed.				IMethod method= getMethod();				fOriginalMethod= method;								ITypeHierarchy hierarchy= null;				IType declaringType= method.getDeclaringType();				if (!declaringType.isInterface())					hierarchy= getCachedHierarchy(declaringType, new SubProgressMonitor(monitor, 1));				IMethod topmost= MethodChecks.getTopmostMethod(getMethod(), hierarchy, monitor);				if (topmost != null)					initialize(topmost);				fActivationChecked= true;			}		} finally{			monitor.done();		}		return result;	}