@Override public IJavaCompletionProposal[] getCorrections(IInvocationContext context, IProblemLocation[] locations) throws CoreException { List<IJavaCompletionProposal> proposals = new ArrayList<>(); ICompilationUnit unit = context.getCompilationUnit(); IProject project = unit.getJavaProject().getProject(); if (!project.hasNature(ApiPlugin.NATURE_ID)) { return new IJavaCompletionProposal[0]; } IFile build = project.getFile("build.properties"); //$NON-NLS-1$ if (needsBuildPropertiesChange(build)) { for (IProblemLocation location : locations) { if (location.getProblemId() == IProblem.UndefinedType) { String[] args = location.getProblemArguments(); if (args.length == 1) { // only one argument in the missing annotation problem for (String arg : args) { String name = ApiPlugin.getJavadocTagManager().getQualifiedNameForAnnotation(arg); if (name != null) { proposals.add(new UnknownAnnotationQuickFix(unit, name)); } } } } } } return proposals.toArray(new IJavaCompletionProposal[proposals.size()]); }