Search in sources :

Example 1 with InvocationAnnotationDeclarationValidationResult

use of org.qi4j.ide.plugin.idea.injections.invocation.common.Qi4jInvocationAnnotationUtil.InvocationAnnotationDeclarationValidationResult in project qi4j-sdk by Qi4j.

the class InvocationAnnotationDeclaredCorrectlyInspection method verifyAnnotationDeclaredCorrectly.

@Nullable
protected final ProblemDescriptor[] verifyAnnotationDeclaredCorrectly(@NotNull PsiVariable psiVariable, @NotNull PsiAnnotation invocationAnnotation, @NotNull InspectionManager manager) {
    LocalQuickFix fix = null;
    String message = null;
    String variableTypeQualifiedName = psiVariable.getType().getCanonicalText();
    InvocationAnnotationDeclarationValidationResult validationResult = isValidInvocationAnnotationDeclaration(psiVariable);
    switch(validationResult) {
        case invalidTypeIsInjectedViaStructureAnnotation:
            if (getStructureAnnotation(psiVariable) == null) {
                fix = new ReplaceWithStructureAnnotation(message("injections.invocation.annotation.declared.correctly.fix.replace.with.structure.annotation"), invocationAnnotation);
            }
            message = message("injections.invocation.annotation.declared.correctly.error.type.is.injected.by.structure", variableTypeQualifiedName);
            break;
        case invalidType:
            message = message("injections.invocation.annotation.declared.correctly.error.type.is.not.injectable", variableTypeQualifiedName);
            break;
    }
    // If it's not an error, return null
    if (message == null) {
        return null;
    }
    // If Fix not defined, by default we remove it.
    if (fix == null) {
        fix = createRemoveAnnotationFix(invocationAnnotation);
    }
    ProblemDescriptor problemDescriptor = manager.createProblemDescriptor(invocationAnnotation, message, fix, GENERIC_ERROR_OR_WARNING);
    return new ProblemDescriptor[] { problemDescriptor };
}
Also used : InvocationAnnotationDeclarationValidationResult(org.qi4j.ide.plugin.idea.injections.invocation.common.Qi4jInvocationAnnotationUtil.InvocationAnnotationDeclarationValidationResult) ReplaceWithStructureAnnotation(org.qi4j.ide.plugin.idea.injections.structure.common.ReplaceWithStructureAnnotation) ProblemDescriptor(com.intellij.codeInspection.ProblemDescriptor) LocalQuickFix(com.intellij.codeInspection.LocalQuickFix) Nullable(org.jetbrains.annotations.Nullable)

Aggregations

LocalQuickFix (com.intellij.codeInspection.LocalQuickFix)1 ProblemDescriptor (com.intellij.codeInspection.ProblemDescriptor)1 Nullable (org.jetbrains.annotations.Nullable)1 InvocationAnnotationDeclarationValidationResult (org.qi4j.ide.plugin.idea.injections.invocation.common.Qi4jInvocationAnnotationUtil.InvocationAnnotationDeclarationValidationResult)1 ReplaceWithStructureAnnotation (org.qi4j.ide.plugin.idea.injections.structure.common.ReplaceWithStructureAnnotation)1