Example usage for org.eclipse.jdt.core.compiler IProblem AmbiguousType

List of usage examples for org.eclipse.jdt.core.compiler IProblem AmbiguousType

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.compiler IProblem AmbiguousType.

Prototype

int AmbiguousType

To view the source code for org.eclipse.jdt.core.compiler IProblem AmbiguousType.

Click Source Link

Usage

From source file:org.eclipse.ajdt.internal.ui.editor.quickfix.QuickFixProcessor.java

License:Open Source License

public boolean hasCorrections(ICompilationUnit cu, int problemId) {
    switch (problemId) {
    case IProblem.UnterminatedString:
    case IProblem.UnusedImport:
    case IProblem.DuplicateImport:
    case IProblem.CannotImportPackage:
    case IProblem.ConflictingImport:
    case IProblem.ImportNotFound:
    case IProblem.UndefinedMethod:
    case IProblem.UndefinedConstructor:
    case IProblem.ParameterMismatch:
    case IProblem.MethodButWithConstructorName:
    case IProblem.UndefinedField:
    case IProblem.UndefinedName:
    case IProblem.PublicClassMustMatchFileName:
    case IProblem.PackageIsNotExpectedPackage:
    case IProblem.UndefinedType:
    case IProblem.TypeMismatch:
    case IProblem.UnhandledException:
    case IProblem.UnreachableCatch:
    case IProblem.InvalidCatchBlockSequence:
    case IProblem.VoidMethodReturnsValue:
    case IProblem.ShouldReturnValue:
    case IProblem.MissingReturnType:
    case IProblem.NonExternalizedStringLiteral:
    case IProblem.NonStaticAccessToStaticField:
    case IProblem.NonStaticAccessToStaticMethod:
    case IProblem.StaticMethodRequested:
    case IProblem.NonStaticFieldFromStaticInvocation:
    case IProblem.InstanceMethodDuringConstructorInvocation:
    case IProblem.InstanceFieldDuringConstructorInvocation:
    case IProblem.NotVisibleMethod:
    case IProblem.NotVisibleConstructor:
    case IProblem.NotVisibleType:
    case IProblem.NotVisibleField:
    case IProblem.BodyForAbstractMethod:
    case IProblem.AbstractMethodInAbstractClass:
    case IProblem.AbstractMethodMustBeImplemented:
    case IProblem.BodyForNativeMethod:
    case IProblem.OuterLocalMustBeFinal:
    case IProblem.UninitializedLocalVariable:
    case IProblem.UndefinedConstructorInDefaultConstructor:
    case IProblem.UnhandledExceptionInDefaultConstructor:
    case IProblem.NotVisibleConstructorInDefaultConstructor:
    case IProblem.AmbiguousType:
    case IProblem.UnusedPrivateMethod:
    case IProblem.UnusedPrivateConstructor:
    case IProblem.UnusedPrivateField:
    case IProblem.UnusedPrivateType:
    case IProblem.LocalVariableIsNeverUsed:
    case IProblem.ArgumentIsNeverUsed:
    case IProblem.MethodRequiresBody:
    case IProblem.NeedToEmulateFieldReadAccess:
    case IProblem.NeedToEmulateFieldWriteAccess:
    case IProblem.NeedToEmulateMethodAccess:
    case IProblem.NeedToEmulateConstructorAccess:
    case IProblem.SuperfluousSemicolon:
    case IProblem.UnnecessaryCast:
    case IProblem.UnnecessaryInstanceof:
    case IProblem.IndirectAccessToStaticField:
    case IProblem.IndirectAccessToStaticMethod:
    case IProblem.Task:
    case IProblem.UnusedMethodDeclaredThrownException:
    case IProblem.UnusedConstructorDeclaredThrownException:
    case IProblem.UnqualifiedFieldAccess:
    case IProblem.JavadocMissing:
    case IProblem.JavadocMissingParamTag:
    case IProblem.JavadocMissingReturnTag:
    case IProblem.JavadocMissingThrowsTag:
    case IProblem.JavadocUndefinedType:
    case IProblem.JavadocAmbiguousType:
    case IProblem.JavadocNotVisibleType:
    case IProblem.JavadocInvalidThrowsClassName:
    case IProblem.JavadocDuplicateThrowsClassName:
    case IProblem.JavadocDuplicateReturnTag:
    case IProblem.JavadocDuplicateParamName:
    case IProblem.JavadocInvalidParamName:
    case IProblem.JavadocUnexpectedTag:
    case IProblem.JavadocInvalidTag:
    case IProblem.NonBlankFinalLocalAssignment:
    case IProblem.DuplicateFinalLocalInitialization:
    case IProblem.FinalFieldAssignment:
    case IProblem.DuplicateBlankFinalFieldInitialization:
    case IProblem.AnonymousClassCannotExtendFinalClass:
    case IProblem.ClassExtendFinalClass:
    case IProblem.FinalMethodCannotBeOverridden:
    case IProblem.InheritedMethodReducesVisibility:
    case IProblem.MethodReducesVisibility:
    case IProblem.OverridingNonVisibleMethod:
    case IProblem.CannotOverrideAStaticMethodWithAnInstanceMethod:
    case IProblem.CannotHideAnInstanceMethodWithAStaticMethod:
    case IProblem.UnexpectedStaticModifierForMethod:
    case IProblem.LocalVariableHidingLocalVariable:
    case IProblem.LocalVariableHidingField:
    case IProblem.FieldHidingLocalVariable:
    case IProblem.FieldHidingField:
    case IProblem.ArgumentHidingLocalVariable:
    case IProblem.ArgumentHidingField:
    case IProblem.IllegalModifierForInterfaceMethod:
    case IProblem.IllegalModifierForInterface:
    case IProblem.IllegalModifierForClass:
    case IProblem.IllegalModifierForInterfaceField:
    case IProblem.IllegalModifierForMemberInterface:
    case IProblem.IllegalModifierForMemberClass:
    case IProblem.IllegalModifierForLocalClass:
    case IProblem.IllegalModifierForArgument:
    case IProblem.IllegalModifierForField:
    case IProblem.IllegalModifierForMethod:
    case IProblem.IllegalModifierForVariable:
    case IProblem.IllegalVisibilityModifierForInterfaceMemberType:
    case IProblem.IncompatibleReturnType:
    case IProblem.IncompatibleExceptionInThrowsClause:
    case IProblem.NoMessageSendOnArrayType:
    case IProblem.InvalidOperator:
    case IProblem.MissingSerialVersion:
    case IProblem.UnnecessaryElse:
    case IProblem.SuperclassMustBeAClass:
    case IProblem.UseAssertAsAnIdentifier:
    case IProblem.UseEnumAsAnIdentifier:
    case IProblem.RedefinedLocal:
    case IProblem.RedefinedArgument:
    case IProblem.CodeCannotBeReached:
    case IProblem.InvalidUsageOfTypeParameters:
    case IProblem.InvalidUsageOfStaticImports:
    case IProblem.InvalidUsageOfForeachStatements:
    case IProblem.InvalidUsageOfTypeArguments:
    case IProblem.InvalidUsageOfEnumDeclarations:
    case IProblem.InvalidUsageOfVarargs:
    case IProblem.InvalidUsageOfAnnotations:
    case IProblem.InvalidUsageOfAnnotationDeclarations:
    case IProblem.FieldMissingDeprecatedAnnotation:
    case IProblem.MethodMissingDeprecatedAnnotation:
    case IProblem.TypeMissingDeprecatedAnnotation:
    case IProblem.MissingOverrideAnnotation:
    case IProblem.IsClassPathCorrect:
    case IProblem.MethodReturnsVoid:
    case IProblem.ForbiddenReference:
    case IProblem.DiscouragedReference:
    case IProblem.UnnecessaryNLSTag:
    case IProblem.AssignmentHasNoEffect:
    case IProblem.UnsafeTypeConversion:
    case IProblem.UndefinedAnnotationMember:
    case IProblem.MissingValueForAnnotationMember:
    case IProblem.FallthroughCase:
    case IProblem.NonGenericType:
    case IProblem.UnhandledWarningToken:
        return true;
    default:/*w  w  w. ja  v  a2 s. c  o m*/
        if (JavaModelUtil.is50OrHigher(cu.getJavaProject())) {
            return SuppressWarningsSubProcessor.hasSuppressWarningsProposal(cu.getJavaProject(), problemId); // AJDT 3.6
        }
        return false;
    }
}

From source file:org.eclipse.ajdt.internal.ui.editor.quickfix.QuickFixProcessor.java

License:Open Source License

private void process(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals)
        throws CoreException {
    int id = problem.getProblemId();
    if (id == 0) { // no proposals for none-problem locations
        return;//from   w ww . j  a va  2 s.c o  m
    }
    switch (id) {
    case IProblem.UnterminatedString:
        String quoteLabel = CorrectionMessages.JavaCorrectionProcessor_addquote_description;
        int pos = moveBack(problem.getOffset() + problem.getLength(), problem.getOffset(), "\n\r", //$NON-NLS-1$
                context.getCompilationUnit());
        proposals.add(new ReplaceCorrectionProposal(quoteLabel, context.getCompilationUnit(), pos, 0, "\"", 0)); //$NON-NLS-1$
        break;
    case IProblem.UnusedImport:
    case IProblem.DuplicateImport:
    case IProblem.CannotImportPackage:
    case IProblem.ConflictingImport:
        ReorgCorrectionsSubProcessor.removeImportStatementProposals(context, problem, proposals);
        break;
    case IProblem.ImportNotFound:
        ReorgCorrectionsSubProcessor.importNotFoundProposals(context, problem, proposals);
        ReorgCorrectionsSubProcessor.removeImportStatementProposals(context, problem, proposals);
        break;
    case IProblem.UndefinedMethod:
        UnresolvedElementsSubProcessor.getMethodProposals(context, problem, false, proposals);
        break;
    case IProblem.UndefinedConstructor:
        UnresolvedElementsSubProcessor.getConstructorProposals(context, problem, proposals);
        break;
    case IProblem.UndefinedAnnotationMember:
        UnresolvedElementsSubProcessor.getAnnotationMemberProposals(context, problem, proposals);
        break;
    case IProblem.ParameterMismatch:
        UnresolvedElementsSubProcessor.getMethodProposals(context, problem, true, proposals);
        break;
    case IProblem.MethodButWithConstructorName:
        ReturnTypeSubProcessor.addMethodWithConstrNameProposals(context, problem, proposals);
        break;
    case IProblem.UndefinedField:
    case IProblem.UndefinedName:
        UnresolvedElementsSubProcessor.getVariableProposals(context, problem, null, proposals);
        break;
    case IProblem.AmbiguousType:
    case IProblem.JavadocAmbiguousType:
        UnresolvedElementsSubProcessor.getAmbiguosTypeReferenceProposals(context, problem, proposals);
        break;
    case IProblem.PublicClassMustMatchFileName:
        ReorgCorrectionsSubProcessor.getWrongTypeNameProposals(context, problem, proposals);
        break;
    case IProblem.PackageIsNotExpectedPackage:
        ReorgCorrectionsSubProcessor.getWrongPackageDeclNameProposals(context, problem, proposals);
        break;
    case IProblem.UndefinedType:
    case IProblem.JavadocUndefinedType:
        UnresolvedElementsSubProcessor.getTypeProposals(context, problem, proposals);
        break;
    case IProblem.TypeMismatch:
        // AspectJ Change
        if (problem.getProblemArguments() != null) { // Bug 265052
            TypeMismatchSubProcessor.addTypeMismatchProposals(context, problem, proposals);
        }
        break;
    case IProblem.IncompatibleReturnType:
        TypeMismatchSubProcessor.addIncompatibleReturnTypeProposals(context, problem, proposals);
        break;
    case IProblem.IncompatibleExceptionInThrowsClause:
        TypeMismatchSubProcessor.addIncompatibleThrowsProposals(context, problem, proposals);
        break;
    case IProblem.UnhandledException:
        LocalCorrectionsSubProcessor.addUncaughtExceptionProposals(context, problem, proposals);
        break;
    case IProblem.UnreachableCatch:
    case IProblem.InvalidCatchBlockSequence:
        LocalCorrectionsSubProcessor.addUnreachableCatchProposals(context, problem, proposals);
        break;
    case IProblem.VoidMethodReturnsValue:
        ReturnTypeSubProcessor.addVoidMethodReturnsProposals(context, problem, proposals);
        break;
    case IProblem.MethodReturnsVoid:
        ReturnTypeSubProcessor.addMethodRetunsVoidProposals(context, problem, proposals);
        break;
    case IProblem.MissingReturnType:
        ReturnTypeSubProcessor.addMissingReturnTypeProposals(context, problem, proposals);
        break;
    case IProblem.ShouldReturnValue:
        ReturnTypeSubProcessor.addMissingReturnStatementProposals(context, problem, proposals);
        break;
    case IProblem.NonExternalizedStringLiteral:
        LocalCorrectionsSubProcessor.addNLSProposals(context, problem, proposals);
        break;
    case IProblem.UnnecessaryNLSTag:
        LocalCorrectionsSubProcessor.getUnnecessaryNLSTagProposals(context, problem, proposals);
        break;
    case IProblem.NonStaticAccessToStaticField:
    case IProblem.NonStaticAccessToStaticMethod:
    case IProblem.IndirectAccessToStaticField:
    case IProblem.IndirectAccessToStaticMethod:
        LocalCorrectionsSubProcessor.addCorrectAccessToStaticProposals(context, problem, proposals);
        break;
    case IProblem.StaticMethodRequested:
    case IProblem.NonStaticFieldFromStaticInvocation:
    case IProblem.InstanceMethodDuringConstructorInvocation:
    case IProblem.InstanceFieldDuringConstructorInvocation:
        ModifierCorrectionSubProcessor.addNonAccessibleReferenceProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_STATIC, 5);
        break;
    case IProblem.NonBlankFinalLocalAssignment:
    case IProblem.DuplicateFinalLocalInitialization:
    case IProblem.FinalFieldAssignment:
    case IProblem.DuplicateBlankFinalFieldInitialization:
    case IProblem.AnonymousClassCannotExtendFinalClass:
    case IProblem.ClassExtendFinalClass:
        ModifierCorrectionSubProcessor.addNonAccessibleReferenceProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_NON_FINAL, 9);
        break;
    case IProblem.InheritedMethodReducesVisibility:
    case IProblem.MethodReducesVisibility:
    case IProblem.OverridingNonVisibleMethod:
        ModifierCorrectionSubProcessor.addChangeOverriddenModifierProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_VISIBLE);
        break;
    case IProblem.FinalMethodCannotBeOverridden:
        ModifierCorrectionSubProcessor.addChangeOverriddenModifierProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_NON_FINAL);
        break;
    case IProblem.CannotOverrideAStaticMethodWithAnInstanceMethod:
        ModifierCorrectionSubProcessor.addChangeOverriddenModifierProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_NON_STATIC);
        break;
    case IProblem.CannotHideAnInstanceMethodWithAStaticMethod:
    case IProblem.IllegalModifierForInterfaceMethod:
    case IProblem.IllegalModifierForInterface:
    case IProblem.IllegalModifierForClass:
    case IProblem.IllegalModifierForInterfaceField:
    case IProblem.IllegalModifierForMemberInterface:
    case IProblem.IllegalModifierForMemberClass:
    case IProblem.IllegalModifierForLocalClass:
    case IProblem.IllegalModifierForArgument:
    case IProblem.IllegalModifierForField:
    case IProblem.IllegalModifierForMethod:
    case IProblem.IllegalModifierForVariable:
    case IProblem.IllegalVisibilityModifierForInterfaceMemberType:
    case IProblem.UnexpectedStaticModifierForMethod:
        ModifierCorrectionSubProcessor.addRemoveInvalidModifiersProposal(context, problem, proposals, 5);
        break;
    case IProblem.NotVisibleMethod:
    case IProblem.NotVisibleConstructor:
    case IProblem.NotVisibleType:
    case IProblem.NotVisibleField:
    case IProblem.JavadocNotVisibleType:
        ModifierCorrectionSubProcessor.addNonAccessibleReferenceProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_VISIBLE, 10);
        break;
    case IProblem.BodyForAbstractMethod:
    case IProblem.AbstractMethodInAbstractClass:
        ModifierCorrectionSubProcessor.addAbstractMethodProposals(context, problem, proposals);
        break;
    case IProblem.AbstractMethodMustBeImplemented:
        LocalCorrectionsSubProcessor.addUnimplementedMethodsProposals(context, problem, proposals);
        break;
    case IProblem.MissingValueForAnnotationMember:
        LocalCorrectionsSubProcessor.addValueForAnnotationProposals(context, problem, proposals);
        break;
    case IProblem.BodyForNativeMethod:
        ModifierCorrectionSubProcessor.addNativeMethodProposals(context, problem, proposals);
        break;
    case IProblem.MethodRequiresBody:
        ModifierCorrectionSubProcessor.addMethodRequiresBodyProposals(context, problem, proposals);
        break;
    case IProblem.OuterLocalMustBeFinal:
        ModifierCorrectionSubProcessor.addNonFinalLocalProposal(context, problem, proposals);
        break;
    case IProblem.UninitializedLocalVariable:
        LocalCorrectionsSubProcessor.addUninitializedLocalVariableProposal(context, problem, proposals);
        break;
    case IProblem.UnhandledExceptionInDefaultConstructor:
    case IProblem.UndefinedConstructorInDefaultConstructor:
    case IProblem.NotVisibleConstructorInDefaultConstructor:
        LocalCorrectionsSubProcessor.addConstructorFromSuperclassProposal(context, problem, proposals);
        break;
    case IProblem.UnusedPrivateMethod:
    case IProblem.UnusedPrivateConstructor:
    case IProblem.UnusedPrivateField:
    case IProblem.UnusedPrivateType:
    case IProblem.LocalVariableIsNeverUsed:
    case IProblem.ArgumentIsNeverUsed:
        LocalCorrectionsSubProcessor.addUnusedMemberProposal(context, problem, proposals);
        break;
    case IProblem.NeedToEmulateFieldReadAccess:
    case IProblem.NeedToEmulateFieldWriteAccess:
    case IProblem.NeedToEmulateMethodAccess:
    case IProblem.NeedToEmulateConstructorAccess:
        ModifierCorrectionSubProcessor.addNonAccessibleReferenceProposal(context, problem, proposals,
                ModifierCorrectionSubProcessor.TO_NON_PRIVATE, 5);
        break;
    case IProblem.SuperfluousSemicolon:
        LocalCorrectionsSubProcessor.addSuperfluousSemicolonProposal(context, problem, proposals);
        break;
    case IProblem.UnnecessaryCast:
        LocalCorrectionsSubProcessor.addUnnecessaryCastProposal(context, problem, proposals);
        break;
    case IProblem.UnnecessaryInstanceof:
        LocalCorrectionsSubProcessor.addUnnecessaryInstanceofProposal(context, problem, proposals);
        break;
    case IProblem.UnusedMethodDeclaredThrownException:
    case IProblem.UnusedConstructorDeclaredThrownException:
        LocalCorrectionsSubProcessor.addUnnecessaryThrownExceptionProposal(context, problem, proposals);
        break;
    case IProblem.UnqualifiedFieldAccess:
        LocalCorrectionsSubProcessor.addUnqualifiedFieldAccessProposal(context, problem, proposals);
        break;
    case IProblem.Task:
        proposals.add(new TaskMarkerProposal(context.getCompilationUnit(), problem, 10));
        break;
    case IProblem.JavadocMissing:
        JavadocTagsSubProcessor.getMissingJavadocCommentProposals(context, problem, proposals);
        break;
    case IProblem.JavadocMissingParamTag:
    case IProblem.JavadocMissingReturnTag:
    case IProblem.JavadocMissingThrowsTag:
        JavadocTagsSubProcessor.getMissingJavadocTagProposals(context, problem, proposals);
        break;
    case IProblem.JavadocInvalidThrowsClassName:
    case IProblem.JavadocDuplicateThrowsClassName:
    case IProblem.JavadocDuplicateReturnTag:
    case IProblem.JavadocDuplicateParamName:
    case IProblem.JavadocInvalidParamName:
    case IProblem.JavadocUnexpectedTag:
    case IProblem.JavadocInvalidTag:
        JavadocTagsSubProcessor.getRemoveJavadocTagProposals(context, problem, proposals);
        break;
    case IProblem.LocalVariableHidingLocalVariable:
    case IProblem.LocalVariableHidingField:
    case IProblem.FieldHidingLocalVariable:
    case IProblem.FieldHidingField:
    case IProblem.ArgumentHidingLocalVariable:
    case IProblem.ArgumentHidingField:
    case IProblem.UseAssertAsAnIdentifier:
    case IProblem.UseEnumAsAnIdentifier:
    case IProblem.RedefinedLocal:
    case IProblem.RedefinedArgument:
        LocalCorrectionsSubProcessor.addInvalidVariableNameProposals(context, problem, proposals);
        break;
    case IProblem.NoMessageSendOnArrayType:
        UnresolvedElementsSubProcessor.getArrayAccessProposals(context, problem, proposals);
        break;
    case IProblem.InvalidOperator:
        LocalCorrectionsSubProcessor.getInvalidOperatorProposals(context, problem, proposals);
        break;
    case IProblem.MissingSerialVersion:
        SerialVersionSubProcessor.getSerialVersionProposals(context, problem, proposals);
        break;
    case IProblem.UnnecessaryElse:
        LocalCorrectionsSubProcessor.getUnnecessaryElseProposals(context, problem, proposals);
        break;
    case IProblem.SuperclassMustBeAClass:
        LocalCorrectionsSubProcessor.getInterfaceExtendsClassProposals(context, problem, proposals);
        break;
    case IProblem.CodeCannotBeReached:
        LocalCorrectionsSubProcessor.getUnreachableCodeProposals(context, problem, proposals);
        break;
    case IProblem.InvalidUsageOfTypeParameters:
    case IProblem.InvalidUsageOfStaticImports:
    case IProblem.InvalidUsageOfForeachStatements:
    case IProblem.InvalidUsageOfTypeArguments:
    case IProblem.InvalidUsageOfEnumDeclarations:
    case IProblem.InvalidUsageOfVarargs:
    case IProblem.InvalidUsageOfAnnotations:
    case IProblem.InvalidUsageOfAnnotationDeclarations:
        // FICXADE  Need reflection here!
        // ECLIPSE 3.8
        //                ReorgCorrectionsSubProcessor.getNeedHigherComplianceProposals(context, problem, proposals, JavaCore.VERSION_1_5);
        // ORIG
        //                ReorgCorrectionsSubProcessor.getNeed50ComplianceProposals(context, problem, proposals);
        break;
    case IProblem.NonGenericType:
        TypeArgumentMismatchSubProcessor.removeMismatchedArguments(context, problem, proposals);
        break;
    case IProblem.MissingOverrideAnnotation:
        ModifierCorrectionSubProcessor.addOverrideAnnotationProposal(context, problem, proposals);
        break;
    case IProblem.FieldMissingDeprecatedAnnotation:
    case IProblem.MethodMissingDeprecatedAnnotation:
    case IProblem.TypeMissingDeprecatedAnnotation:
        ModifierCorrectionSubProcessor.addDeprecatedAnnotationProposal(context, problem, proposals);
        break;
    case IProblem.IsClassPathCorrect:
        ReorgCorrectionsSubProcessor.getIncorrectBuildPathProposals(context, problem, proposals);
        break;
    case IProblem.ForbiddenReference:
    case IProblem.DiscouragedReference:
        ReorgCorrectionsSubProcessor.getAccessRulesProposals(context, problem, proposals);
        break;
    case IProblem.AssignmentHasNoEffect:
        LocalCorrectionsSubProcessor.getAssignmentHasNoEffectProposals(context, problem, proposals);
        break;
    case IProblem.UnsafeTypeConversion:
    case IProblem.RawTypeReference:
    case IProblem.UnsafeRawMethodInvocation:
        LocalCorrectionsSubProcessor.addTypePrametersToRawTypeReference(context, problem, proposals);
        break;
    case IProblem.FallthroughCase:
        LocalCorrectionsSubProcessor.addFallThroughProposals(context, problem, proposals);
        break;
    case IProblem.UnhandledWarningToken:
        SuppressWarningsSubProcessor.addUnknownSuppressWarningProposals(context, problem, proposals);
        break;
    default:
    }
    if (JavaModelUtil.is50OrHigher(context.getCompilationUnit().getJavaProject())) {
        SuppressWarningsSubProcessor.addSuppressWarningsProposals(context, problem, proposals);
    }
}

From source file:org.eclipse.jst.jsp.core.internal.java.JSPTranslator.java

License:Open Source License

protected void translateUseBean(ITextRegionCollection container) {
    ITextRegion r = null;//from  www  .  jav  a  2  s.  com
    String attrName = null;
    String attrValue = null;
    String id = null;
    ITextRegion idRegion = null;
    String type = null;
    ITextRegion typeRegion = null;
    String className = null;
    ITextRegion classnameRegion = null;
    String beanName = null;
    ITextRegion beanNameRegion = null;

    if (DOMRegionContext.XML_END_TAG_OPEN.equals(container.getFirstRegion().getType())) {
        if (!fUseBeansStack.isEmpty()) {
            fUseBeansStack.pop();
            appendToBuffer("}", fUserCode, false, fCurrentNode); //$NON-NLS-1$ 
        } else {
            // no useBean start tag being remembered
            ITextRegionCollection extraEndRegion = container;
            IJSPProblem missingStartTag = createJSPProblem(IJSPProblem.UseBeanStartTagMissing,
                    IJSPProblem.F_PROBLEM_ID_LITERAL,
                    NLS.bind(JSPCoreMessages.JSPTranslator_4, JSP11Namespace.ElementName.USEBEAN),
                    extraEndRegion.getStartOffset(), extraEndRegion.getEndOffset());
            fTranslationProblems.add(missingStartTag);
        }
        return;
    }

    Iterator regions = container.getRegions().iterator();
    while (regions.hasNext() && (r = (ITextRegion) regions.next()) != null
            && (r.getType() != DOMRegionContext.XML_TAG_CLOSE
                    || r.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE)) {
        attrName = attrValue = null;
        if (r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
            attrName = container.getText(r).trim();
            if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null
                    && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
                if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null
                        && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
                    attrValue = StringUtils.stripQuotes(container.getText(r));
                }
                // has equals, but no value?
            }
            // an attribute with no equals?
        }
        // (pa) might need different logic here if we wanna support more
        if (attrName != null && attrValue != null) {
            if (attrName.equals("id")) {//$NON-NLS-1$
                id = attrValue;
                idRegion = r;
            } else if (attrName.equals("class")) {//$NON-NLS-1$
                className = attrValue;
                classnameRegion = r;
            } else if (attrName.equals("type")) {//$NON-NLS-1$
                type = attrValue;
                typeRegion = r;
            } else if (attrName.equals("beanName")) { //$NON-NLS-1$
                beanName = attrValue;
                beanNameRegion = r;
            }
        }
    }

    if (id != null) {
        // The id is not a valid Java identifier
        if (!isValidJavaIdentifier(id) && idRegion != null) {
            Object problem = createJSPProblem(IJSPProblem.UseBeanInvalidID, IProblem.ParsingErrorInvalidToken,
                    MessageFormat.format(JSPCoreMessages.JSPTranslator_0, new String[] { id }),
                    container.getStartOffset(idRegion), container.getTextEndOffset(idRegion) - 1);
            fTranslationProblems.add(problem);
        }
        // No Type information is provided
        if (((type == null && className == null) || (type == null && beanName != null)) && idRegion != null) {
            Object problem = createJSPProblem(IJSPProblem.UseBeanMissingTypeInfo, IProblem.UndefinedType,
                    NLS.bind(JSPCoreMessages.JSPTranslator_3, new String[] { id }),
                    container.getStartOffset(idRegion), container.getTextEndOffset(idRegion) - 1);
            fTranslationProblems.add(problem);
        }
        // Cannot specify both a class and a beanName
        if (className != null && beanName != null && beanNameRegion != null) {
            ITextRegion nameRegion = container.getRegions().get(1);
            Object problem = createJSPProblem(IJSPProblem.UseBeanAmbiguousType, IProblem.AmbiguousType,
                    JSPCoreMessages.JSPTranslator_2, container.getStartOffset(nameRegion),
                    container.getTextEndOffset(nameRegion) - 1);
            fTranslationProblems.add(problem);
        }
        /*
         * Only have a class or a beanName at this point, and potentially
         * a type has id w/ type and/or classname/beanName
         */
        // Type id = new Classname/Beanname();
        // or
        // Type id = null; // if there is no classname or beanname
        if ((type != null || className != null)) {
            if (className != null)
                className = decodeType(className);

            if (type == null) {
                type = className;
                typeRegion = classnameRegion;
            } else
                type = decodeType(type);

            /* Now check the types (multiple of generics may be involved) */
            List errorTypeNames = new ArrayList(2);
            if (!isTypeFound(type, errorTypeNames)) {
                for (int i = 0; i < errorTypeNames.size(); i++) {
                    Object problem = createJSPProblem(IJSPProblem.F_PROBLEM_ID_LITERAL, IProblem.UndefinedType,
                            MessageFormat.format(JSPCoreMessages.JSPTranslator_1,
                                    new String[] { errorTypeNames.get(i).toString() }),
                            container.getStartOffset(typeRegion), container.getTextEndOffset(typeRegion) - 1);
                    fTranslationProblems.add(problem);
                }
            } else {
                String prefix = type + " " + id + " = "; //$NON-NLS-1$ //$NON-NLS-2$
                String suffix = "null;" + ENDL; //$NON-NLS-1$
                if (className != null)
                    suffix = "new " + className + "();" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
                else if (beanName != null)
                    suffix = "(" + type + ") java.beans.Beans.instantiate(getClass().getClassLoader(), \"" //$NON-NLS-1$//$NON-NLS-2$
                            + beanName + "\");" + ENDL; //$NON-NLS-1$
                appendToBuffer(prefix + suffix, fUserCode, true, fCurrentNode);
            }
        }
    }
    /*
     * Add a brace and remember the start tag regardless of whether a
     * variable was correctly created
     */
    if (!DOMRegionContext.XML_EMPTY_TAG_CLOSE.equals(container.getLastRegion().getType())) {
        fUseBeansStack.push(container);
        appendToBuffer("{", fUserCode, false, fCurrentNode); //$NON-NLS-1$ 
    }
}

From source file:org.grails.ide.eclipse.editor.gsp.translation.internal.GSPTranslator.java

License:Open Source License

protected void translateUseBean(ITextRegionCollection container) {
    ITextRegion r = null;/*from   ww w.  j  a  va2 s.  com*/
    String attrName = null;
    String attrValue = null;
    String id = null;
    ITextRegion idRegion = null;
    String type = null;
    ITextRegion typeRegion = null;
    String className = null;
    ITextRegion classnameRegion = null;
    String beanName = null;
    ITextRegion beanNameRegion = null;

    if (DOMRegionContext.XML_END_TAG_OPEN.equals(container.getFirstRegion().getType())) {
        if (!fUseBeansStack.isEmpty()) {
            fUseBeansStack.pop();
            appendToBuffer("}", fUserCode, false, fCurrentNode); //$NON-NLS-1$ 
        } else {
            // no useBean start tag being remembered
            ITextRegionCollection extraEndRegion = container;
            IJSPProblem missingStartTag = createJSPProblem(IJSPProblem.UseBeanStartTagMissing,
                    IJSPProblem.F_PROBLEM_ID_LITERAL, "", extraEndRegion.getStartOffset(),
                    extraEndRegion.getEndOffset());
            fTranslationProblems.add(missingStartTag);
        }
        return;
    }

    Iterator regions = container.getRegions().iterator();
    while (regions.hasNext() && (r = (ITextRegion) regions.next()) != null
            && (r.getType() != DOMRegionContext.XML_TAG_CLOSE
                    || r.getType() != DOMRegionContext.XML_EMPTY_TAG_CLOSE)) {
        attrName = attrValue = null;
        if (r.getType().equals(DOMRegionContext.XML_TAG_ATTRIBUTE_NAME)) {
            attrName = container.getText(r).trim();
            if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null
                    && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_EQUALS) {
                if (regions.hasNext() && (r = (ITextRegion) regions.next()) != null
                        && r.getType() == DOMRegionContext.XML_TAG_ATTRIBUTE_VALUE) {
                    attrValue = StringUtils.stripQuotes(container.getText(r));
                }
                // has equals, but no value?
            }
            // an attribute with no equals?
        }
        // (pa) might need different logic here if we wanna support more
        if (attrName != null && attrValue != null) {
            if (attrName.equals("id")) {//$NON-NLS-1$
                id = attrValue;
                idRegion = r;
            } else if (attrName.equals("class")) {//$NON-NLS-1$
                className = attrValue;
                classnameRegion = r;
            } else if (attrName.equals("type")) {//$NON-NLS-1$
                type = attrValue;
                typeRegion = r;
            } else if (attrName.equals("beanName")) { //$NON-NLS-1$
                beanName = attrValue;
                beanNameRegion = r;
            }
        }
    }

    if (id != null) {
        // The id is not a valid Java identifier
        if (!isValidJavaIdentifier(id) && idRegion != null) {
            Object problem = createJSPProblem(IJSPProblem.UseBeanInvalidID, IProblem.ParsingErrorInvalidToken,
                    MessageFormat.format(JSPCoreMessages.JSPTranslator_0, new String[] { id }),
                    container.getStartOffset(idRegion), container.getTextEndOffset(idRegion) - 1);
            fTranslationProblems.add(problem);
        }
        // No Type information is provided
        if (((type == null && className == null) || (type == null && beanName != null)) && idRegion != null) {
            Object problem = createJSPProblem(IJSPProblem.UseBeanMissingTypeInfo, IProblem.UndefinedType,
                    NLS.bind(JSPCoreMessages.JSPTranslator_3, new String[] { id }),
                    container.getStartOffset(idRegion), container.getTextEndOffset(idRegion) - 1);
            fTranslationProblems.add(problem);
        }
        // Cannot specify both a class and a beanName
        if (className != null && beanName != null && beanNameRegion != null) {
            ITextRegion nameRegion = container.getRegions().get(1);
            Object problem = createJSPProblem(IJSPProblem.UseBeanAmbiguousType, IProblem.AmbiguousType,
                    JSPCoreMessages.JSPTranslator_2, container.getStartOffset(nameRegion),
                    container.getTextEndOffset(nameRegion) - 1);
            fTranslationProblems.add(problem);
        }
        /*
         * Only have a class or a beanName at this point, and potentially
         * a type has id w/ type and/or classname/beanName
         */
        // Type id = new Classname/Beanname();
        // or
        // Type id = null; // if there is no classname or beanname
        if ((type != null || className != null)) {
            if (type == null) {
                type = className;
                typeRegion = classnameRegion;
            }

            /* Now check the types (multiple of generics may be involved) */
            List errorTypeNames = new ArrayList(2);
            if (!isTypeFound(type, errorTypeNames)) {
                for (int i = 0; i < errorTypeNames.size(); i++) {
                    Object problem = createJSPProblem(IJSPProblem.F_PROBLEM_ID_LITERAL, IProblem.UndefinedType,
                            MessageFormat.format(JSPCoreMessages.JSPTranslator_1,
                                    new String[] { errorTypeNames.get(i).toString() }),
                            container.getStartOffset(typeRegion), container.getTextEndOffset(typeRegion) - 1);
                    fTranslationProblems.add(problem);
                }
            } else {
                String prefix = type + " " + id + " = "; //$NON-NLS-1$ //$NON-NLS-2$
                String suffix = "null;" + ENDL; //$NON-NLS-1$
                if (className != null)
                    suffix = "new " + className + "();" + ENDL; //$NON-NLS-1$ //$NON-NLS-2$
                else if (beanName != null)
                    suffix = "(" + type + ") java.beans.Beans.instantiate(getClass().getClassLoader(), \"" //$NON-NLS-1$//$NON-NLS-2$
                            + beanName + "\");" + ENDL; //$NON-NLS-1$
                appendToBuffer(prefix + suffix, fUserCode, true, fCurrentNode);
            }
        }
    }
    /*
     * Add a brace and remember the start tag regardless of whether a
     * variable was correctly created
     */
    if (!DOMRegionContext.XML_EMPTY_TAG_CLOSE.equals(container.getLastRegion().getType())) {
        fUseBeansStack.push(container);
        // GRAILS Change: always need something around the anonymous block
        appendToBuffer("if(true){", fUserCode, false, fCurrentNode); //$NON-NLS-1$ 
        // GRAILS End
    }
}