if (kind == TO_VISIBLE && bindingDecl.getKind() == IBinding.VARIABLE && Modifier.isPrivate(bindingDecl.getModifiers())) {
if (kind == TO_VISIBLE && bindingDecl.getKind() == IBinding.VARIABLE ) {
	public static void addNonAccessibleReferenceProposal(IInvocationContext context, IProblemLocation problem, Collection proposals, int kind, int relevance) throws CoreException {		ICompilationUnit cu= context.getCompilationUnit();		ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());		if (selectedNode == null) {			return;		}		IBinding binding=null;		switch (selectedNode.getNodeType()) {			case ASTNode.SIMPLE_NAME:				binding= ((SimpleName) selectedNode).resolveBinding();				break;			case ASTNode.QUALIFIED_NAME:				binding= ((QualifiedName) selectedNode).resolveBinding();				break;			case ASTNode.SIMPLE_TYPE:				binding= ((SimpleType) selectedNode).resolveBinding();				break;			case ASTNode.METHOD_INVOCATION:				binding= ((MethodInvocation) selectedNode).getName().resolveBinding();				break;			case ASTNode.SUPER_METHOD_INVOCATION:				binding= ((SuperMethodInvocation) selectedNode).getName().resolveBinding();				break;			case ASTNode.FIELD_ACCESS:				binding= ((FieldAccess) selectedNode).getName().resolveBinding();				break;			case ASTNode.SUPER_FIELD_ACCESS:				binding= ((SuperFieldAccess) selectedNode).getName().resolveBinding();				break;			case ASTNode.CLASS_INSTANCE_CREATION:				binding= ((ClassInstanceCreation) selectedNode).resolveConstructorBinding();				break;			case ASTNode.SUPER_CONSTRUCTOR_INVOCATION:				binding= ((SuperConstructorInvocation) selectedNode).resolveConstructorBinding();				break;			default:				return;		}		ITypeBinding typeBinding= null;		String name;		IBinding bindingDecl;		boolean isLocalVar= false;		if (binding instanceof IMethodBinding) {			IMethodBinding methodDecl= (IMethodBinding) binding;			bindingDecl= methodDecl.getMethodDeclaration();			typeBinding= methodDecl.getDeclaringClass();			name= methodDecl.getName() + "()"; //$NON-NLS-1$		} else if (binding instanceof IVariableBinding) {			IVariableBinding varDecl= (IVariableBinding) binding;			typeBinding= varDecl.getDeclaringClass();			name= binding.getName();			isLocalVar= !varDecl.isField();			bindingDecl= Bindings.getVariableDeclaration(varDecl);		} else if (binding instanceof ITypeBinding) {			typeBinding= (ITypeBinding) binding;			bindingDecl= typeBinding.getTypeDeclaration();			name= binding.getName();		} else {			return;		}		if (typeBinding != null && typeBinding.isFromSource() || isLocalVar) {			int includedModifiers= 0;			int excludedModifiers= 0;			String label;			switch (kind) {				case TO_VISIBLE:					excludedModifiers= Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC;					includedModifiers= getNeededVisibility(selectedNode, typeBinding);					label= Messages.format(CorrectionMessages.ModifierCorrectionSubProcessor_changevisibility_description, new String[] { name, getVisibilityString(includedModifiers) });					break;				case TO_STATIC:					label= Messages.format(CorrectionMessages.ModifierCorrectionSubProcessor_changemodifiertostatic_description, name);					includedModifiers= Modifier.STATIC;					break;				case TO_NON_STATIC:					label= Messages.format(CorrectionMessages.ModifierCorrectionSubProcessor_changemodifiertononstatic_description, name);					excludedModifiers= Modifier.STATIC;					break;				case TO_NON_PRIVATE:					label= Messages.format(CorrectionMessages.ModifierCorrectionSubProcessor_changemodifiertodefault_description, name);					excludedModifiers= Modifier.PRIVATE;					break;				case TO_NON_FINAL:					label= Messages.format(CorrectionMessages.ModifierCorrectionSubProcessor_changemodifiertononfinal_description, name);					excludedModifiers= Modifier.FINAL;					break;				default:					Assert.isTrue(false, "not supported"); //$NON-NLS-1$					return;			}			ICompilationUnit targetCU= isLocalVar ? cu : ASTResolving.findCompilationUnitForBinding(cu, context.getASTRoot(), typeBinding.getTypeDeclaration());			if (targetCU != null) {				Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);				proposals.add(new ModifierChangeCompletionProposal(label, targetCU, bindingDecl, selectedNode, includedModifiers, excludedModifiers, relevance, image));			}		}		if (kind == TO_VISIBLE && bindingDecl.getKind() == IBinding.VARIABLE && Modifier.isPrivate(bindingDecl.getModifiers())) {			if (selectedNode instanceof SimpleName || selectedNode instanceof FieldAccess && ((FieldAccess) selectedNode).getExpression() instanceof ThisExpression) {				UnresolvedElementsSubProcessor.getVariableProposals(context, problem, proposals);			}		}	}