TypeDeclaration declaringClass= ASTNodeSearchUtil.getTypeDeclarationNode(getDeclaringClass(), cuNode);
TypeDeclaration declaringClass= ASTNodeSearchUtil.getTypeDeclarationNode(getDeclaringType(), cuNode);
	private TextChangeManager createChangeManager(IProgressMonitor pm) throws CoreException{		try{			pm.beginTask(RefactoringCoreMessages.getString("PushDownRefactoring.preview"), 8); //$NON-NLS-1$			addImportsToSubclasses(new SubProgressMonitor(pm, 1));			TextChangeManager manager= new TextChangeManager();			MemberActionInfo[] abstractMembersToCopyToSubclasses= getInfosForAbstractMembersToBeCreatedInSubclassesOfDeclaringClass();			MemberActionInfo[] nonAbstractMembersToCopyToSubclasses= getInfosForNonAbstractMembersToBeCreatedInSubclassesOfDeclaringClass();			IType[] destinationsForNonAbstract= getDestinationClassesForNonAbstractMembers(new SubProgressMonitor(pm, 1));			IType[] destinationsForAbstract= getDestinationClassesForAbstractMembers(new SubProgressMonitor(pm, 1));						ICompilationUnit declaringCu= getDeclaringCU();			CompilationUnit declaringCuNode= new RefactoringASTParser(AST.JLS3).parse(declaringCu, true);			ICompilationUnit[] cus= getCusToProcess(new SubProgressMonitor(pm, 1));			IProgressMonitor subPm= new SubProgressMonitor(pm, 4);			subPm.beginTask("", cus.length); //$NON-NLS-1$			for (int i= 0; i < cus.length; i++) {				ICompilationUnit cu= cus[i];				CompilationUnit cuNode= cu.equals(declaringCu) ? declaringCuNode: new RefactoringASTParser(AST.JLS3).parse(cu, true);				OldASTRewrite rewrite= new OldASTRewrite(cuNode);				if (cu.equals(declaringCu)){					TypeDeclaration declaringClass= ASTNodeSearchUtil.getTypeDeclarationNode(getDeclaringClass(), cuNode);					if (shouldMakeDeclaringClassAbstract())						makeDeclaringClassAbstract(declaringClass, rewrite);					deleteDeclarationNodes(cuNode, rewrite, Arrays.asList(getMembersToDeleteFromDeclaringClass()));					makeMethodsAbstractInDeclaringClass(declaringCuNode, rewrite);				}				copyMembers(abstractMembersToCopyToSubclasses, destinationsForAbstract, declaringCuNode, cu, cuNode, rewrite);				copyMembers(nonAbstractMembersToCopyToSubclasses, destinationsForNonAbstract, declaringCuNode, cu, cuNode, rewrite);				addTextEditFromRewrite(manager, cu, rewrite);				subPm.worked(1);				if (pm.isCanceled())					throw new OperationCanceledException();			}			return manager;		} finally{			pm.done();		}	}