public static void addUnnecessaryCastProposal(IInvocationContext context, IProblemLocation problem,  Collection proposals) throws CoreException {
public static void addUnnecessaryCastProposal(IInvocationContext context, IProblemLocation problem,  Collection proposals) {
	public static void addUnnecessaryCastProposal(IInvocationContext context, IProblemLocation problem,  Collection proposals) throws CoreException {		ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());				ASTNode curr= selectedNode;		while (curr instanceof ParenthesizedExpression) {			curr= ((ParenthesizedExpression) curr).getExpression();		}				if (curr instanceof CastExpression) {			ASTRewrite rewrite= new ASTRewrite(selectedNode.getParent());						CastExpression cast= (CastExpression) curr;			Expression expression= cast.getExpression();			ASTNode placeholder= rewrite.createCopy(expression);						if (ASTNodes.needsParentheses(expression)) {				rewrite.markAsReplaced(curr, placeholder);			} else {				rewrite.markAsReplaced(selectedNode, placeholder);			}						String label= CorrectionMessages.getString("LocalCorrectionsSubProcessor.unnecessarycast.description"); //$NON-NLS-1$			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);			ASTRewriteCorrectionProposal proposal= new ASTRewriteCorrectionProposal(label, context.getCompilationUnit(), rewrite, 5, image);			proposals.add(proposal);		}	}