类javax.annotation.processing.Completion源码实例Demo

下面列出了怎么用javax.annotation.processing.Completion的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: netbeans   文件: CreateRegistrationProcessor.java
@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();
}
 
源代码2 项目: TencentKona-8   文件: TestCompletions.java
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);
}
 
源代码3 项目: jdk8u60   文件: TestCompletions.java
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);
}
 
源代码4 项目: openjdk-jdk8u   文件: TestCompletions.java
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);
}
 
源代码5 项目: netbeans   文件: SourceUtils.java
/**
 * 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;
}
 
源代码6 项目: netbeans   文件: OptionAnnotationProcessor.java
@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();
    }
}
 
源代码7 项目: openjdk-jdk8u-backup   文件: TestCompletions.java
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);
}
 
源代码8 项目: openjdk-jdk9   文件: TestCompletions.java
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);
}
 
源代码9 项目: hottub   文件: TestCompletions.java
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);
}
 
源代码10 项目: openjdk-8-source   文件: TestCompletions.java
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);
}
 
源代码11 项目: openjdk-8   文件: TestCompletions.java
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);
}
 
源代码12 项目: buck   文件: TracingProcessorWrapper.java
@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);
  }
}
 
源代码13 项目: immutables   文件: ProxyProcessor.java
@Override
public Iterable<? extends Completion> getCompletions(
    Element element,
    AnnotationMirror annotation,
    ExecutableElement member,
    String userText) {
  return delegate.getCompletions(element, annotation, member, userText);
}
 
@Override
public Iterable<? extends Completion> getCompletions(
		Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {

	return Collections.emptyList();
}
 
@Override
public Iterable<? extends Completion> getCompletions(
		Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {

	return Collections.emptyList();
}
 
源代码16 项目: jabel   文件: JabelJavacProcessor.java
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    return emptySet();
}
 
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    return Collections.emptyList();
}
 
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotationMirror, ExecutableElement executableElement, String s) {
    return super.getCompletions(element, annotationMirror, executableElement, s);
}
 
源代码19 项目: quarkus   文件: PanacheAnnotationProcessor.java
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member,
        String userText) {
    return Collections.emptyList();
}
 
源代码20 项目: quarkus   文件: ExtensionAnnotationProcessor.java
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member,
        String userText) {
    return Collections.emptySet();
}
 
源代码21 项目: netbeans   文件: APTUtils.java
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
    return delegate.getCompletions(element, annotation, member, userText);
}
 
@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;
    }
 
源代码23 项目: netbeans   文件: CreateRegistrationProcessor.java
@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;
}
 
源代码24 项目: netbeans   文件: ServiceProviderProcessor.java
@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;
}
 
源代码25 项目: EasyMPermission   文件: AnnotationProcessor.java
@Override public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
	return instance.getCompletions(element, annotation, member, userText);
}
 
源代码26 项目: vertx-codegen   文件: GeneratorHelper.java
@Override
public Iterable<? extends Completion> getCompletions(Element element, AnnotationMirror annotation, ExecutableElement member, String userText) {
  return Collections.emptyList();
}
 
源代码27 项目: buck   文件: TreeBackedProcessorWrapper.java
@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();
}
 
源代码28 项目: buck   文件: TreeBackedProcessorWrapperTest.java
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();
}
 
 类所在包
 同包方法