javax.annotation.processing.Completion Java Examples

The following examples show how to use javax.annotation.processing.Completion. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: CreateRegistrationProcessor.java    From netbeans with Apache License 2.0 6 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element annotated, AnnotationMirror annotation, ExecutableElement attr, String userText) {
    if (processingEnv == null || annotated == null) {
        return Collections.emptyList();
    }

    if (   annotation == null
        || !"org.netbeans.modules.textmate.lexer.api.GrammarRegistration".contentEquals(((TypeElement) annotation.getAnnotationType().asElement()).getQualifiedName())) {
        return Collections.emptyList();
    }

    if ("mimeType".contentEquals(attr.getSimpleName())) { // NOI18N
        return completeMimePath(annotated, annotation, attr, userText);
    }

    return Collections.emptyList();
}
 
Example #2
Source File: TestCompletions.java    From TencentKona-8 with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #3
Source File: ProxyProcessor.java    From immutables with Apache License 2.0 5 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(
    Element element,
    AnnotationMirror annotation,
    ExecutableElement member,
    String userText) {
  return delegate.getCompletions(element, annotation, member, userText);
}
 
Example #4
Source File: TracingProcessorWrapper.java    From buck with Apache License 2.0 5 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(
    Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
  try (Scope scope = new Scope(AnnotationProcessingEvent.Operation.GET_COMPLETIONS)) {
    return innerProcessor.getCompletions(element, annotation, member, userText);
  }
}
 
Example #5
Source File: TestCompletions.java    From openjdk-8 with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #6
Source File: TestCompletions.java    From openjdk-8-source with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #7
Source File: TestCompletions.java    From hottub with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #8
Source File: TestCompletions.java    From openjdk-jdk9 with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #9
Source File: TestCompletions.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #10
Source File: OptionAnnotationProcessor.java    From netbeans with Apache License 2.0 5 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    if (delegate() != null) {
        return delegate().getCompletions(element, annotation, member, userText);
    } else {
        return Collections.emptySet();
    }
}
 
Example #11
Source File: SourceUtils.java    From netbeans with Apache License 2.0 5 votes vote down vote up
/**
 * Returns a list of completions for an annotation attribute value suggested by
 * annotation processors.
 * 
 * @param info the CompilationInfo used to resolve annotation processors
 * @param element the element being annotated
 * @param annotation the (perhaps partial) annotation being applied to the element
 * @param member the annotation member to return possible completions for
 * @param userText source code text to be completed
 * @return suggested completions to the annotation member
 * 
 * @since 0.57
 */
public static List<? extends Completion> getAttributeValueCompletions(CompilationInfo info, Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    List<Completion> completions = new LinkedList<>();
    if (info.getPhase().compareTo(Phase.ELEMENTS_RESOLVED) >= 0) {
        String fqn = ((TypeElement) annotation.getAnnotationType().asElement()).getQualifiedName().toString();
        Iterable<? extends Processor> processors =
                JavacParser.ProcessorHolder.instance(info.impl.getJavacTask().getContext()).getProcessors();
        if (processors != null) {
            for (Processor processor : processors) {
                boolean match = false;
                for (String sat : processor.getSupportedAnnotationTypes()) {
                    if ("*".equals(sat)) { //NOI18N
                        match = true;
                        break;
                    } else if (sat.endsWith(".*")) { //NOI18N
                        sat = sat.substring(0, sat.length() - 1);
                        if (fqn.startsWith(sat)) {
                            match = true;
                            break;
                        }
                    } else if (fqn.equals(sat)) {
                        match = true;
                        break;
                    }
                }
                if (match) {
                    try {
                        for (Completion c : processor.getCompletions(element, annotation, member, userText)) {
                            completions.add(c);
                        }
                    } catch (Exception e) {
                        Logger.getLogger(processor.getClass().getName()).log(Level.INFO, e.getMessage(), e);
                    }
                }
            }
        }
    }
    return completions;
}
 
Example #12
Source File: TestCompletions.java    From openjdk-jdk8u with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #13
Source File: TestCompletions.java    From jdk8u60 with GNU General Public License v2.0 5 votes vote down vote up
public static void main(String... argv) {
    String value = "value";
    String message = "message";

    Completion c = of(value, message);
    if (!value.equals(c.getValue()) ||
        !message.equals(c.getMessage()))
        throw new RuntimeException("Bad full completion" + c);

    c = of(value);
    if (!value.equals(c.getValue()) ||
        !"".equals(c.getMessage()))
        throw new RuntimeException("Bad value completion" + c);
}
 
Example #14
Source File: CustomizedProcessor.java    From thinking-in-spring-boot-samples with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    return Collections.emptyList();
}
 
Example #15
Source File: CandidateComponentsIndexer.java    From spring-analysis-note with MIT License 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(
		Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {

	return Collections.emptyList();
}
 
Example #16
Source File: TreeBackedProcessorWrapperTest.java    From buck with Apache License 2.0 4 votes vote down vote up
private void runTestProcessor(
    BiFunction<Set<? extends TypeElement>, RoundEnvironment, Boolean> processMethod)
    throws IOException {
  testCompiler.useFrontendOnlyJavacTask();
  testCompiler.addSourceFileContents(
      "Foo.java",
      "package com.example.buck;",
      "@FooAnno",
      "public class Foo {}",
      "@interface FooAnno {}");

  testCompiler.setProcessors(
      Collections.singletonList(
          new Processor() {
            @Override
            public Set<String> getSupportedOptions() {
              return Collections.emptySet();
            }

            @Override
            public Set<String> getSupportedAnnotationTypes() {
              return Collections.singleton("com.example.buck.FooAnno");
            }

            @Override
            public SourceVersion getSupportedSourceVersion() {
              return SourceVersion.latestSupported();
            }

            @Override
            public void init(ProcessingEnvironment processingEnv) {
              TreeBackedProcessorWrapperTest.this.processingEnv = processingEnv;
              elements = processingEnv.getElementUtils();
              messager = processingEnv.getMessager();
            }

            @Override
            public Iterable<? extends Completion> getCompletions(
                Element element,
                AnnotationMirror annotation,
                ExecutableElement member,
                String userText) {
              fail("Should never be called");
              return null;
            }

            @Override
            public boolean process(
                Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
              return processMethod.apply(annotations, roundEnv);
            }
          }));

  testCompiler.enter();
}
 
Example #17
Source File: CandidateComponentsIndexer.java    From java-technology-stack with MIT License 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(
		Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {

	return Collections.emptyList();
}
 
Example #18
Source File: TreeBackedProcessorWrapper.java    From buck with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(
    Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
  // This method is only ever called from IDEs, which is not a scenario for Buck right now
  throw new UnsupportedOperationException();
}
 
Example #19
Source File: GeneratorHelper.java    From vertx-codegen with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
  return Collections.emptyList();
}
 
Example #20
Source File: AnnotationProcessor.java    From EasyMPermission with MIT License 4 votes vote down vote up
@Override public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
	return instance.getCompletions(element, annotation, member, userText);
}
 
Example #21
Source File: JabelJavacProcessor.java    From jabel with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    return emptySet();
}
 
Example #22
Source File: APTUtils.java    From netbeans with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    return delegate.getCompletions(element, annotation, member, userText);
}
 
Example #23
Source File: VenvyRouterBinderProcessor.java    From VideoOS-Android-SDK with GNU General Public License v3.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotationMirror, ExecutableElement executableElement, String s) {
    return super.getCompletions(element, annotationMirror, executableElement, s);
}
 
Example #24
Source File: PanacheAnnotationProcessor.java    From quarkus with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member,
        String userText) {
    return Collections.emptyList();
}
 
Example #25
Source File: ExtensionAnnotationProcessor.java    From quarkus with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member,
        String userText) {
    return Collections.emptySet();
}
 
Example #26
Source File: ServiceProviderProcessor.java    From netbeans with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element annotated, AnnotationMirror annotation, ExecutableElement attr, String userText) {
    if (processingEnv == null || annotated == null || !annotated.getKind().isClass()) {
        return Collections.emptyList();
    }

    if (   annotation == null
        || !"org.openide.util.lookup.ServiceProvider".contentEquals(((TypeElement) annotation.getAnnotationType().asElement()).getQualifiedName())) {
        return Collections.emptyList();
    }

    if (!"service".contentEquals(attr.getSimpleName())) {
        return Collections.emptyList();
    }

    TypeElement jlObject = processingEnv.getElementUtils().getTypeElement("java.lang.Object");

    if (jlObject == null) {
        return Collections.emptyList();
    }
    
    Collection<Completion> result = new LinkedList<Completion>();
    List<TypeElement> toProcess = new LinkedList<TypeElement>();

    toProcess.add((TypeElement) annotated);

    while (!toProcess.isEmpty()) {
        TypeElement c = toProcess.remove(0);

        result.add(new TypeCompletion(c.getQualifiedName().toString() + ".class"));

        List<TypeMirror> parents = new LinkedList<TypeMirror>();

        parents.add(c.getSuperclass());
        parents.addAll(c.getInterfaces());

        for (TypeMirror tm : parents) {
            if (tm == null || tm.getKind() != TypeKind.DECLARED) {
                continue;
            }

            TypeElement type = (TypeElement) processingEnv.getTypeUtils().asElement(tm);

            if (!jlObject.equals(type)) {
                toProcess.add(type);
            }
        }
    }

    return result;
}
 
Example #27
Source File: CreateRegistrationProcessor.java    From netbeans with Apache License 2.0 4 votes vote down vote up
@Override
public Iterable<? extends Completion> getCompletions(Element annotated, AnnotationMirror annotation, ExecutableElement attr, String userText) {
    if (processingEnv == null || annotated == null || !annotated.getKind().isClass()) {
        return Collections.emptyList();
    }

    if (   annotation == null
        || !"org.netbeans.api.editor.mimelookup.MimeRegistration".contentEquals(((TypeElement) annotation.getAnnotationType().asElement()).getQualifiedName())) {
        return Collections.emptyList();
    }

    if ("mimeType".contentEquals(attr.getSimpleName())) { // NOI18N
        return completeMimePath(annotated, annotation, attr, userText);
    }
    if (!"service".contentEquals(attr.getSimpleName())) {
        return Collections.emptyList();
    }

    TypeElement jlObject = processingEnv.getElementUtils().getTypeElement("java.lang.Object");

    if (jlObject == null) {
        return Collections.emptyList();
    }

    Collection<Completion> result = new LinkedList<Completion>();
    List<TypeElement> toProcess = new LinkedList<TypeElement>();

    toProcess.add((TypeElement) annotated);

    while (!toProcess.isEmpty()) {
        TypeElement c = toProcess.remove(0);

        result.add(new TypeCompletion(c.getQualifiedName().toString() + ".class"));

        List<TypeMirror> parents = new LinkedList<TypeMirror>();

        parents.add(c.getSuperclass());
        parents.addAll(c.getInterfaces());

        for (TypeMirror tm : parents) {
            if (tm == null || tm.getKind() != TypeKind.DECLARED) {
                continue;
            }

            TypeElement type = (TypeElement) processingEnv.getTypeUtils().asElement(tm);

            if (!jlObject.equals(type)) {
                toProcess.add(type);
            }
        }
    }

    return result;
}
 
Example #28
Source File: SupportedAnnotationTypesCompletion.java    From netbeans with Apache License 2.0 4 votes vote down vote up
@Override
    public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
        ProcessingEnvironment processingEnv = this.processingEnv.get();

        if (processingEnv == null)
            return Collections.emptyList();

        TypeElement annotationObj = processingEnv.getElementUtils().getTypeElement("java.lang.annotation.Annotation");

        if (annotationObj == null)
            return Collections.emptyList();

        Trees trees = Trees.instance(processingEnv);
        TreePath path = trees.getPath(element);

        if (path == null)
            return Collections.emptyList();

        FileObject owner;

        try {
            owner = URLMapper.findFileObject(path.getCompilationUnit().getSourceFile().toUri().toURL());
        } catch (MalformedURLException ex) {
            Exceptions.printStackTrace(ex);
            return Collections.emptyList();
        }

        ClassIndex ci = ClasspathInfo.create(owner).getClassIndex();

        if (ci == null)
            return Collections.emptyList();

        List<Completion> result = new LinkedList<Completion>();

//        for (ElementHandle<TypeElement> eh : ci.getElements(ElementHandle.create(annotationObj), EnumSet.of(SearchKind.IMPLEMENTORS), EnumSet.of(SearchScope.DEPENDENCIES, SearchScope.SOURCE))) {
//            result.add(new CompletionImpl(eh.getQualifiedName()));
//        }

        for (ElementHandle<TypeElement> eh : ci.getDeclaredTypes("", ClassIndex.NameKind.PREFIX, EnumSet.of(SearchScope.DEPENDENCIES, SearchScope.SOURCE))) {
            if (eh.getKind() != ElementKind.ANNOTATION_TYPE) continue;
            
            result.add(new CompletionImpl('\"' + eh.getQualifiedName() + '\"'));
        }

        return result;
    }