ExtractInterfaceUtil inst= new ExtractInterfaceUtil(typeWorkingCopy, supertypeToUse.getCompilationUnit(), workingCopyOwner);
ExtractInterfaceUtil inst= new ExtractInterfaceUtil(typeWorkingCopy, supertypeToUse.getCompilationUnit(), workingCopyOwner, inputType);
	public static CompilationUnitRange[] updateReferences(TextChangeManager manager, IType inputType, IType supertypeToUse, WorkingCopyOwner workingCopyOwner, boolean updateInputTypeCu, IProgressMonitor pm, RefactoringStatus status, CodeGenerationSettings settings) throws CoreException{		ICompilationUnit typeWorkingCopy= inputType.getCompilationUnit();		fCu= typeWorkingCopy;		ExtractInterfaceUtil inst= new ExtractInterfaceUtil(typeWorkingCopy, supertypeToUse.getCompilationUnit(), workingCopyOwner);		ITypeBinding inputTypeBinding= getTypeBinding(inputType, workingCopyOwner);		ConstraintVariable[] updatableVars= inst.getUpdatableVariables(inputTypeBinding, inputType, supertypeToUse, pm, status);		if (status.hasFatalError())			return new CompilationUnitRange[0];		String typeName= inputType.getElementName();		CompilationUnitRange[] ranges= inst.getCompilationUnitRanges(updatableVars, inputType, inputTypeBinding);		Set cus= new HashSet();		Map cuToImportType= new HashMap();		for (int i= 0; i < ranges.length; i++) {			CompilationUnitRange range= ranges[i];			ICompilationUnit cu= range.getCompilationUnit();			if (updateInputTypeCu || ! cu.equals(typeWorkingCopy)){			    TextChange change= getTextChange(manager, cu);			    if (!cus.contains(cu)) {			        cus.add(cu);			        ImportRewrite importRewrite= new ImportRewrite(cu, settings);			        cuToImportType.put(cu, importRewrite.addImport(supertypeToUse.getFullyQualifiedName()));			        TextEdit importEdit= importRewrite.createEdit(TextBuffer.create(cu.getSource()));			        TextChangeCompatibility.addTextEdit(change, RefactoringCoreMessages.getString("ExtractInterfaceUtil.update_imports"), importEdit);			    }				TextChangeCompatibility.addTextEdit(change, RefactoringCoreMessages.getString("ExtractInterfaceUtil.update_reference"), createTypeUpdateEdit(range.getSourceRange(), typeName, (String)cuToImportType.get(cu)));			}		}		return ranges;	}