if (targetCU != null) {
if (targetCU != null && JavaModelUtil.isEditable(targetCU)) {
	public static void getConstructorProposals(ICorrectionContext context, List proposals) throws CoreException {		ICompilationUnit cu= context.getCompilationUnit();				CompilationUnit astRoot= context.getASTRoot();		ASTNode selectedNode= context.getCoveringNode();		if (selectedNode == null) {			return;		}				ITypeBinding targetBinding= null;		List arguments= null;				int type= selectedNode.getNodeType();		if (type == ASTNode.CLASS_INSTANCE_CREATION) {			ClassInstanceCreation creation= (ClassInstanceCreation) selectedNode;						IBinding binding= creation.getName().resolveBinding();			if (binding instanceof ITypeBinding) {				targetBinding= (ITypeBinding) binding;				arguments= creation.arguments();					}		} else if (type == ASTNode.SUPER_CONSTRUCTOR_INVOCATION) {			ITypeBinding typeBinding= ASTResolving.getBindingOfParentType(selectedNode);			if (typeBinding != null && !typeBinding.isAnonymous()) {				targetBinding= typeBinding.getSuperclass();				arguments= ((SuperConstructorInvocation) selectedNode).arguments();			}		} else if (type == ASTNode.CONSTRUCTOR_INVOCATION) {			ITypeBinding typeBinding= ASTResolving.getBindingOfParentType(selectedNode);			if (typeBinding != null && !typeBinding.isAnonymous()) {				targetBinding= typeBinding;				arguments= ((ConstructorInvocation) selectedNode).arguments();			}					}		if (targetBinding != null && targetBinding.isFromSource()) {			ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, targetBinding);			if (targetCU != null) {				String label= CorrectionMessages.getFormattedString("UnresolvedElementsSubProcessor.createconstructor.description", targetBinding.getName()); //$NON-NLS-1$				Image image= JavaPluginImages.get(JavaPluginImages.IMG_MISC_PUBLIC);				proposals.add(new NewMethodCompletionProposal(label, targetCU, selectedNode, arguments, targetBinding, 1, image));			}		}	}