if (JavaElementUtil.getAllConstructors(fType).length == 0) addConstructor(td, rewrite); else
if (typeHasNoConstructors()) createConstructor(td, rewrite, fCreateInstanceField); else if (fCreateInstanceField)
	private ASTRewrite createRewrite(Map typeReferences, Map constructorReferences, ICompilationUnit declaringCu, ICompilationUnit processedCu, boolean removeTypeDeclaration) throws CoreException {		CompilationUnit cuNode= AST.parseCompilationUnit(processedCu, true);		ASTRewrite rewrite= new ASTRewrite(cuNode);		if (processedCu.equals(declaringCu)){			TypeDeclaration td= findTypeDeclaration(fType, cuNode);			if (! removeTypeDeclaration && ! isInputTypeStatic()){				if (JavaElementUtil.getAllConstructors(fType).length == 0)					addConstructor(td, rewrite);				else					modifyConstructors(td, rewrite);				addEnclosingInstanceDeclaration(td, rewrite);			}			modifyAccessesToMembersFromEnclosingInstance(td, rewrite);			if (removeTypeDeclaration)				rewrite.markAsRemoved(td);			else 				removeUnusedTypeModifiers(td, rewrite);		}		ASTNode[] typeRefs= getReferenceNodesIn(cuNode, typeReferences, processedCu);		for (int i= 0; i < typeRefs.length; i++) {			updateTypeReference(typeRefs[i], rewrite, processedCu);		}		ASTNode[] constructorsRefs= getReferenceNodesIn(cuNode, constructorReferences, processedCu);		for (int i= 0; i < constructorsRefs.length; i++) {			updateConstructorReference(constructorsRefs[i], rewrite, processedCu);		}		return rewrite;	}