switch (problem.getProblemId()) { case IProblem.CannotHideAnInstanceMethodWithAStaticMethod:
switch (problemId) { case IProblem.CannotHideAnInstanceMethodWithAStaticMethod: case IProblem.UnexpectedStaticModifierForMethod:
	public static void addRemoveInvalidModfiersProposal(IInvocationContext context, IProblemLocation problem, Collection proposals, int relevance) {		ICompilationUnit cu= context.getCompilationUnit();		ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());		if (selectedNode instanceof MethodDeclaration) {			selectedNode= ((MethodDeclaration) selectedNode).getName();		}				if (!(selectedNode instanceof SimpleName)) {			return;		}		IBinding binding= ((SimpleName) selectedNode).resolveBinding();		if (binding != null) {			String methodName= binding.getName();			String label;			if (problem.getProblemId() == IProblem.CannotHideAnInstanceMethodWithAStaticMethod) {				label= CorrectionMessages.getFormattedString("ModifierCorrectionSubProcessor.changemethodtononstatic.description", methodName); //$NON-NLS-1$			} else {				label= CorrectionMessages.getFormattedString("ModifierCorrectionSubProcessor.removeinvalidmodifiers.description", methodName); //$NON-NLS-1$							}						int excludedModifiers= 0;			int includedModifiers= 0;							switch (problem.getProblemId()) {			case IProblem.CannotHideAnInstanceMethodWithAStaticMethod:					excludedModifiers= Modifier.STATIC;					break;				case IProblem.IllegalModifierForInterfaceMethod:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.ABSTRACT);					break;				case IProblem.IllegalModifierForInterface:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.ABSTRACT | Modifier.STRICTFP);					break;				case IProblem.IllegalModifierForClass:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.ABSTRACT | Modifier.FINAL | Modifier.STRICTFP);					break;				case IProblem.IllegalModifierForInterfaceField:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.ABSTRACT | Modifier.FINAL);					break;				case IProblem.IllegalModifierForMemberInterface:				case IProblem.IllegalVisibilityModifierForInterfaceMemberType:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.STATIC | Modifier.STRICTFP);					break;				case IProblem.IllegalModifierForMemberClass:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE | Modifier.STATIC | Modifier.ABSTRACT | Modifier.FINAL | Modifier.STRICTFP);					break;				case IProblem.IllegalModifierForLocalClass:					excludedModifiers= ~(Modifier.ABSTRACT | Modifier.FINAL | Modifier.STRICTFP);					break;				case IProblem.IllegalModifierForArgument:					excludedModifiers= ~Modifier.FINAL;					break;				case IProblem.IllegalModifierForField:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE | Modifier.STATIC |  Modifier.FINAL | Modifier.VOLATILE | Modifier.TRANSIENT);					break;				case IProblem.IllegalModifierForMethod:					excludedModifiers= ~(Modifier.PUBLIC | Modifier.PROTECTED | Modifier.PRIVATE | Modifier.STATIC | Modifier.ABSTRACT | Modifier.FINAL | Modifier.NATIVE | Modifier.STRICTFP);					break;				case IProblem.IllegalModifierForVariable:					excludedModifiers= ~Modifier.FINAL;					break;				default:					Assert.isTrue(false, "not supported"); //$NON-NLS-1$					return;			}						Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);			proposals.add(new ModifierChangeCompletionProposal(label, cu, binding, selectedNode, includedModifiers, excludedModifiers, relevance, image));		}	}