Java 类javax.tools.Diagnostic.Kind 实例源码

项目:EM    文件:FragmentAnnotationProcessor.java   
private void processRound(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    loop: for (TypeElement annotation : annotations) {
        for (Element element : roundEnv.getElementsAnnotatedWith(annotation)) {
            switch (element.getAnnotation(RuntimeExtension.class).value()) {
            case FRAMEWORK:
                entry = "Fragment-Host: system.bundle; extension:=framework";
                break loop;
            case BOOTCLASSPATH:
                entry = "Fragment-Host: system.bundle; extension:=bootclasspath";
                break loop;
            }
        }
    }
    try {
        generateFile();
    } catch (IOException e) {
        messager.printMessage(Kind.ERROR, "IOException while generating file with contracts! " + e.getMessage());
        e.printStackTrace();
    }
}
项目:EM    文件:ActivatorAnnotationProcessor.java   
private void processRound(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    loop: for (TypeElement annotation : annotations) {
        for (Element element : roundEnv.getElementsAnnotatedWith(annotation)) {
            if (element.getAnnotation(Activator.class).extension()) {
                extensionActivator = element.asType().toString();
            } else {
                activator = element.asType().toString();
            }
            if (activator != null && extensionActivator != null) {
                break loop;
            }
        }
    }
    try {
        generateFile();
    } catch (IOException e) {
        messager.printMessage(Kind.ERROR, "IOException while generating file with contracts! " + e.getMessage());
        e.printStackTrace();
    }
}
项目:openjdk-jdk10    文件:ParameterProcessor.java   
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    for (Element element : roundEnv.getElementsAnnotatedWith(ParameterNames.class)) {
        ParameterNames names = element.getAnnotation(ParameterNames.class);
        if (names == null) {
            continue;
        }
        List<String> expected = Arrays.asList(names.value());
        List<String> actual =
                ((ExecutableElement) element)
                        .getParameters()
                        .stream()
                        .map(p -> p.getSimpleName().toString())
                        .collect(toCollection(ArrayList::new));
        if (!expected.equals(actual)) {
            String message =
                    String.format(
                            "bad parameter names for %s#%s; expected: %s, was: %s",
                            element, element, expected, actual);
            messager.printMessage(Kind.ERROR, message);
        }
    }
    return false;
}
项目:incubator-netbeans    文件:PatchedPublicProcessor.java   
private void flush(RoundEnvironment roundEnv) {
    if (!originatingElements.isEmpty()) {
        try (OutputStream os = processingEnv.getFiler().createResource(
                StandardLocation.CLASS_OUTPUT,
                "", "META-INF/.bytecodePatched",
                originatingElements.toArray(new Element[originatingElements.size()])).openOutputStream()) {
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(os, "UTF-8"));
            for (Map.Entry<String, String> exEntry : superclasses.entrySet()) {
                String api = exEntry.getKey();
                String sup = exEntry.getValue();

                bw.append("extend.").append(api).append("=").append(sup);
                bw.newLine();
            }
            bw.flush();
        } catch (IOException x) {
            processingEnv.getMessager().printMessage(Kind.ERROR, x.getMessage());
        }
    }
}
项目:incubator-netbeans    文件:PatchedPublicProcessor.java   
private TypeElement getImplFor() {
    implForElement = processingEnv.getElementUtils().getTypeElement(IMPL_FOR_NAME);
    if (implForElement == null) {
        if (!reported) {
            processingEnv.getMessager().printMessage(Kind.ERROR, "Cannot find @ImplementationFor annotation");
            reported = true;
        }
        return null;
    }
    for (Element e : implForElement.getEnclosedElements()) {
        if (e.getKind() == ElementKind.METHOD && e.getSimpleName().contentEquals("value")) {
            valueElement = e;
            break;
        }
    }
    return implForElement;
}
项目:AptSpring    文件:SpringAnnotationParser.java   
private boolean parseBeanMethod(ExecutableElement beanMethod, String[] beanNames, Messager messager) {
  boolean valid = true;
  if (beanNames.length == 0) {
    valid = false;
    messager.printMessage(Kind.ERROR, "All @Bean annotations must define at least one name for a bean.", beanMethod);
  }
  if (beanMethod.getReturnType().getKind() != TypeKind.DECLARED) {
    valid = false;
    messager.printMessage(Kind.ERROR, "@Bean methods must return an Object", beanMethod);
  }
  if (!beanMethod.getModifiers().contains(Modifier.PUBLIC)) {
    valid = false;
    messager.printMessage(Kind.ERROR, "@Bean methods must be marked public", beanMethod);
  }
  List<Modifier> illegalModifiers = getIllegalModifiers(beanMethod.getModifiers(), DISALLOWED_ON_METHOD);
  if (illegalModifiers.size() != 0) {
    valid = false;
    messager.printMessage(Kind.ERROR, "Illegal modifiers found on spring @Bean method: "
         + illegalModifiers.stream().map(m -> m.name()).collect(Collectors.joining(", ")),
        beanMethod);
  }
  return valid;
}
项目:MaxSim    文件:AbstractParser.java   
public final M parse(RoundEnvironment env, Element element) {
    this.roundEnv = env;
    M model = null;
    try {
        AnnotationMirror mirror = null;
        if (getAnnotationType() != null) {
            mirror = Utils.findAnnotationMirror(processingEnv, element.getAnnotationMirrors(), getAnnotationType());
        }

        if (!context.getTruffleTypes().verify(context, element, mirror)) {
            return null;
        }
        model = parse(element, mirror);
        if (model == null) {
            return null;
        }

        model.emitMessages((TypeElement) element, log);
        return filterErrorElements(model);
    } catch (CompileErrorException e) {
        log.message(Kind.WARNING, element, null, null, "The truffle processor could not parse class due to error: %s", e.getMessage());
        return null;
    } finally {
        this.roundEnv = null;
    }
}
项目:MaxSim    文件:TruffleTypes.java   
public TruffleTypes(ProcessorContext context) {
    node = getRequired(context, Node.class);
    nodeArray = context.getEnvironment().getTypeUtils().getArrayType(node);
    unexpectedValueException = getRequired(context, UnexpectedResultException.class);
    frame = getRequired(context, VirtualFrame.class);
    childAnnotation = getRequired(context, Child.class);
    childrenAnnotation = getRequired(context, Children.class);
    compilerDirectives = getRequired(context, CompilerDirectives.class);
    compilerAsserts = getRequired(context, CompilerAsserts.class);
    assumption = getRequired(context, Assumption.class);
    invalidAssumption = getRequired(context, InvalidAssumptionException.class);
    nodeInfoAnnotation = getRequired(context, NodeInfo.class);
    nodeInfoKind = getRequired(context, NodeInfo.Kind.class);
    slowPath = getRequired(context, SlowPath.class);
    truffleOptions = getRequired(context, TruffleOptions.class);
}
项目:openjdk-jdk10    文件:NodeIntrinsicVerifier.java   
private void checkInputType(TypeElement nodeClass, TypeMirror returnType, Element element, AnnotationMirror annotation) {
    InputType inputType = getInputType(returnType, element, annotation);
    if (inputType != InputType.Value) {
        boolean allowed = false;
        InputType[] allowedTypes = nodeClass.getAnnotation(NodeInfo.class).allowedUsageTypes();
        for (InputType allowedType : allowedTypes) {
            if (inputType == allowedType) {
                allowed = true;
                break;
            }
        }
        if (!allowed) {
            env.getMessager().printMessage(Kind.ERROR, String.format("@NodeIntrinsic returns input type %s, but only %s is allowed.", inputType, Arrays.toString(allowedTypes)), element,
                            annotation);
        }
    }
}
项目:butterknife-parent    文件:ButterKnifeProcessor.java   
private void printMessage(Kind kind, Element element, String message, Object[] args) {
  if (args.length > 0) {
    message = String.format(message, args);
  }

  processingEnv.getMessager().printMessage(kind, message, element);
}
项目:GitHub    文件:Output.java   
void complete() {
  try {
    writeFile();
  } catch (Exception ex) {
    StaticEnvironment.processing().getMessager().printMessage(
        Diagnostic.Kind.MANDATORY_WARNING,
        "Cannot write service files: " + key + ex.toString());
  }
}
项目:openjdk-jdk10    文件:TestMultipleErrors.java   
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    for (Element root : roundEnv.getRootElements()) {
        processingEnv.getMessager().printMessage(Kind.ERROR, "error1", root);
        processingEnv.getMessager().printMessage(Kind.ERROR, "error2", root);

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

        trees.printMessage(Kind.ERROR, "error3", path.getLeaf(), path.getCompilationUnit());
        trees.printMessage(Kind.ERROR, "error4", path.getLeaf(), path.getCompilationUnit());
    }
    return true;
}
项目:incubator-netbeans    文件:CompilationInfoImpl.java   
@Override
public void report(Diagnostic<? extends JavaFileObject> message) {
    if (partialReparseErrors != null) {
        if (this.jfo != null && this.jfo == message.getSource()) {
            partialReparseErrors.add(message);
            if (message.getKind() == Kind.ERROR) {
                partialReparseRealErrors = true;
            }
        }
    } else {
        Diagnostics errors = getErrors(message.getSource());
        errors.add((int) message.getPosition(), message);
    }
}
项目:incubator-netbeans    文件:NbBundleProcessor.java   
private void warnUndocumented(int i, Element e, String key) {
    AnnotationMirror mirror = null;
    AnnotationValue value = null;
    if (e != null) {
        for (AnnotationMirror _mirror : e.getAnnotationMirrors()) {
            if (_mirror.getAnnotationType().toString().equals(NbBundle.Messages.class.getCanonicalName())) {
                mirror = _mirror;
                for (Map.Entry<? extends ExecutableElement,? extends AnnotationValue> entry : mirror.getElementValues().entrySet()) {
                    if (entry.getKey().getSimpleName().contentEquals("value")) {
                        // SimpleAnnotationValueVisitor6 unusable here since we need to determine the AnnotationValue in scope when visitString is called:
                        Object v = entry.getValue().getValue();
                        if (v instanceof String) {
                            if (((String) v).startsWith(key + "=")) {
                                value = entry.getValue();
                            }
                        } else {
                            for (AnnotationValue subentry : NbCollections.checkedListByCopy((List<?>) v, AnnotationValue.class, true)) {
                                v = subentry.getValue();
                                if (v instanceof String) {
                                    if (((String) v).startsWith(key + "=")) {
                                        value = subentry;
                                        break;
                                    }
                                }
                            }
                        }
                        break;
                    }
                }
                break;
            }
        }
    }
    processingEnv.getMessager().printMessage(Kind.WARNING, "Undocumented format parameter {" + i + "}", e, mirror, value);
}
项目:incubator-netbeans    文件:RandomlyFailsProcessor.java   
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    if (!roundEnv.processingOver()) {
        for (Element e : roundEnv.getElementsAnnotatedWith(RandomlyFails.class)) {
            Element typeEl = e.getKind() == ElementKind.METHOD ? e.getEnclosingElement() : e;
            TypeMirror nbTestCaseType = processingEnv.getElementUtils().
                    getTypeElement(NbTestCase.class.getName()).asType();
            if (!processingEnv.getTypeUtils().isAssignable(typeEl.asType(), nbTestCaseType)) {
                processingEnv.getMessager().printMessage(Kind.ERROR, "@RandomlyFails must be used on NbTestCase subclasses", e);
            }
        }
        return true;
    }
    return false;
}
项目:incubator-netbeans    文件:JavaHintsAnnotationProcessor.java   
private boolean verifyTriggerAnnotations(ExecutableElement method) {
    List<AnnotationMirror> patternAnnotations = new ArrayList<AnnotationMirror>();
    AnnotationMirror am = findAnnotation(method.getAnnotationMirrors(), "org.netbeans.spi.java.hints.TriggerPattern");

    if (am != null) {
        patternAnnotations.add(am);
    }

    am = findAnnotation(method.getAnnotationMirrors(), "org.netbeans.spi.java.hints.TriggerPatterns");

    if (am != null) {
        patternAnnotations.addAll(Arrays.asList(getAttributeValue(am, "value", AnnotationMirror[].class)));
    }

    for (AnnotationMirror patternDescription : patternAnnotations) {
        String pattern = getAttributeValue(patternDescription, "value", String.class);

        if (pattern == null) continue;

        Set<String> variables = new HashSet<String>();
        Matcher m = VARIABLE_PATTERN.matcher(pattern);

        while (m.find()) {
            variables.add(m.group(0));
        }

        for (AnnotationMirror constraint : getAttributeValue(patternDescription, "constraints", AnnotationMirror[].class)) {
            String variable = getAttributeValue(constraint, "variable", String.class);
            String type = getAttributeValue(constraint, "type", String.class);

            if (variable == null || type == null) continue;

            if (!variables.contains(variable)) {
                processingEnv.getMessager().printMessage(Kind.WARNING, "Variable " + variable + " not used in the pattern", method, constraint, getAttributeValueDescription(constraint, "variable"));
            }
        }
    }

    return false;
}
项目:incubator-netbeans    文件:JavaHintsAnnotationProcessor.java   
public Void visitString(String s, Void p) {
    if ("displayName".equals(attrName) || "description".equals(attrName) || "tooltip".equals(attrName)) {
        try {
            annotationFolder.bundlevalue(attrName, s);
        } catch (LayerGenerationException ex) {
           processingEnv.getMessager().printMessage(Kind.ERROR, ex.getLocalizedMessage(), errElement, errAnnotationMirror, errAnnotationValue);
        }
    } else {
        annotationFolder.stringvalue(attrName, s);
    }
    return null;
}
项目:incubator-netbeans    文件:AbstractServiceProviderProcessor.java   
/**
 * Register a service.
 * If the class does not have an appropriate signature, an error will be printed and the registration skipped.
 * @param clazz the service implementation type (an error will be reported if not a {@link TypeElement})
 * @param annotation the (top-level) annotation registering the service, for diagnostic purposes
 * @param type the type to which the implementation must be assignable
 * @param path a path under which to register, or "" if inapplicable
 * @param position a position at which to register, or {@link Integer#MAX_VALUE} to skip
 * @param supersedes possibly empty list of implementation to supersede
 * @since 8.8
 */
protected final void register(
    Element el, Class<? extends Annotation> annotation,
    TypeMirror type, String path, int position, String... supersedes
) {
    if (el.getKind() != ElementKind.CLASS) {
        processingEnv.getMessager().printMessage(Kind.ERROR, annotation.getName() + " is not applicable to a " + el.getKind(), el);
        return;
    }
    if (el.getEnclosingElement().getKind() == ElementKind.CLASS && !el.getModifiers().contains(Modifier.STATIC)) {
        processingEnv.getMessager().printMessage(Kind.ERROR, "Inner class needs to be static to be annotated with @ServiceProvider", el);
        return;
    }

    TypeElement clazz = (TypeElement) el;
    String impl = processingEnv.getElementUtils().getBinaryName(clazz).toString();
    String xface = processingEnv.getElementUtils().getBinaryName((TypeElement) processingEnv.getTypeUtils().asElement(type)).toString();
    if (!processingEnv.getTypeUtils().isAssignable(clazz.asType(), type)) {
        AnnotationMirror ann = findAnnotationMirror(clazz, annotation);
        processingEnv.getMessager().printMessage(Kind.ERROR, impl + " is not assignable to " + xface,
                clazz, ann, findAnnotationValue(ann, "service"));
        return;
    }
    String rsrc = (path.length() > 0 ? "META-INF/namedservices/" + path + "/" : "META-INF/services/") + xface;
    Boolean verify = verifiedClasses.get(clazz);
    if (verify == null) {
        verify = verifyServiceProviderSignature(clazz, annotation);
        verifiedClasses.put(clazz, verify);
    }
    if (!verify) {
        return;
    }
    registerImpl(clazz, impl, rsrc, position, supersedes);
}
项目:incubator-netbeans    文件:AbstractServiceProviderProcessor.java   
private boolean verifyServiceProviderSignature(TypeElement clazz, Class<? extends Annotation> annotation) {
    AnnotationMirror ann = findAnnotationMirror(clazz, annotation);
    if (!clazz.getModifiers().contains(Modifier.PUBLIC)) {
        processingEnv.getMessager().printMessage(Kind.ERROR, clazz + " must be public", clazz, ann);
        return false;
    }
    if (clazz.getModifiers().contains(Modifier.ABSTRACT)) {
        processingEnv.getMessager().printMessage(Kind.ERROR, clazz + " must not be abstract", clazz, ann);
        return false;
    }
    if (clazz.getEnclosingElement().getKind() != ElementKind.PACKAGE && !clazz.getModifiers().contains(Modifier.STATIC)) {
        processingEnv.getMessager().printMessage(Kind.ERROR, clazz + " must be static", clazz, ann);
        return false;
    }
    {
        boolean hasDefaultCtor = false;
        for (ExecutableElement constructor : ElementFilter.constructorsIn(clazz.getEnclosedElements())) {
            if (constructor.getModifiers().contains(Modifier.PUBLIC) && constructor.getParameters().isEmpty()) {
                hasDefaultCtor = true;
                break;
            }
        }
        if (!hasDefaultCtor) {
            processingEnv.getMessager().printMessage(Kind.ERROR, clazz + " must have a public no-argument constructor", clazz, ann);
            return false;
        }
    }
    return true;
}
项目:openjdk-jdk10    文件:ResolveHarness.java   
public static void main(String[] args) throws Exception {
    try {
        fm.setLocation(SOURCE_PATH,
                Arrays.asList(new File(System.getProperty("test.src"), "tests")));
        for (JavaFileObject jfo : fm.list(SOURCE_PATH, "", Collections.singleton(JavaFileObject.Kind.SOURCE), true)) {
            new ResolveHarness(jfo).check();
        }
        if (nerrors > 0) {
            throw new AssertionError("Errors were found");
        }
    } finally {
        fm.close();
    }
}
项目:incubator-netbeans    文件:NbBundleProcessor.java   
private void warnUndocumented(int i, Element e, String key) {
    AnnotationMirror mirror = null;
    AnnotationValue value = null;
    if (e != null) {
        for (AnnotationMirror _mirror : e.getAnnotationMirrors()) {
            if (_mirror.getAnnotationType().toString().equals(NbBundle.Messages.class.getCanonicalName())) {
                mirror = _mirror;
                for (Map.Entry<? extends ExecutableElement,? extends AnnotationValue> entry : mirror.getElementValues().entrySet()) {
                    if (entry.getKey().getSimpleName().contentEquals("value")) {
                        // SimpleAnnotationValueVisitor6 unusable here since we need to determine the AnnotationValue in scope when visitString is called:
                        Object v = entry.getValue().getValue();
                        if (v instanceof String) {
                            if (((String) v).startsWith(key + "=")) {
                                value = entry.getValue();
                            }
                        } else {
                            for (AnnotationValue subentry : NbCollections.checkedListByCopy((List<?>) v, AnnotationValue.class, true)) {
                                v = subentry.getValue();
                                if (v instanceof String) {
                                    if (((String) v).startsWith(key + "=")) {
                                        value = subentry;
                                        break;
                                    }
                                }
                            }
                        }
                        break;
                    }
                }
                break;
            }
        }
    }
    processingEnv.getMessager().printMessage(Kind.WARNING, "Undocumented format parameter {" + i + "}", e, mirror, value);
}
项目:convalida    文件:ConvalidaProcessor.java   
private void error(Element element, String message, Object... args) {
    if (args.length > 0) {
        message = String.format(message, args);
    }

    this.messager.printMessage(Kind.ERROR, message, element);
}
项目:AptSpring    文件:SpringAnnotationParser.java   
/**
 * Read a TypeElement to get application structure.
 * 
 * @param te definition type element.
 * @param messager presents error messages for the compiler to pass to the user.
 * @return the {@link DefinitionModel} parsed from a properly annotated {@link TypeElement}
 */
public DefinitionModel extractDefinition(TypeElement te, Messager messager) {  
  Verified verified = te.getAnnotation(Verified.class);
  DefinitionModel model = new DefinitionModel(te, verified == null ? false : verified.root());

  errorIfInvalidClass(te, messager);

  model.addDependencyNames(getImportsTypes(te));
  String[] configurationBeanNames  = AnnotationValueExtractor
      .getAnnotationValue(te, CONFIGURATION_TYPE, DEFAULT_ANNOTATION_VALUE);
  String[] componentBeanNames  = AnnotationValueExtractor
      .getAnnotationValue(te, COMPONENT_TYPE, DEFAULT_ANNOTATION_VALUE);
  if (configurationBeanNames != null) {
    for (Element enclosed : te.getEnclosedElements()) {
      handleEnclosedElements(messager, model, enclosed);
    }
  } else {
    if (componentBeanNames != null) {
      addModelsFromComponent(te, model, componentBeanNames, messager);
    } else {
      messager.printMessage(Kind.ERROR, "@Verified annotation must only be used on @Configuration or @Component classes", te);
    }
  }

  for (String expectedBean : verified.expectedBeans()) {
    model.addDefinition(new ExpectedModel(expectedBean, te));
  }
  return model;
}
项目:AptSpring    文件:SpringAnnotationParser.java   
/**
 * This method is called on {@link ExecutableElement}.
 * Bean methods on an @Configuration bean, or Constructors on @Component classes.
 * This method parses the @Qualifier, or @Value annotations if a @Verified=root, and reads the types of each parameter.
 * That data is used to build a list of {@link InstanceDependencyModel}'s which are part of an {@link InstanceModel}.
 * All parameters must have an @Qualifier or @Value, and the annotations can not be mixed, errors will result otherwise.
 * 
 * @param messager APT messager that will receive error messages.
 * @param model the DefinitionModel being parse, which may be a @Configuration or @Component annotated entity.
 * @param execelement the bean method if an @Configuration, or the constructor if an @Component.
 * @return the dependencies of the to be constructed {@link InstanceModel}
 */
private List<InstanceDependencyModel> execElementDependency(Messager messager, DefinitionModel model,
    ExecutableElement execelement) {
  List<InstanceDependencyModel> dependencies = new ArrayList<>();
  boolean hasValues = false;
  boolean hasQualifiers = false;
  for (VariableElement varelement : execelement.getParameters()) {

    String[] qualifierNames = AnnotationValueExtractor
        .getAnnotationValue(varelement, QUALIFIER_TYPE, DEFAULT_ANNOTATION_VALUE);
    String[] valueNames = AnnotationValueExtractor
        .getAnnotationValue(varelement, VALUE_TYPE, DEFAULT_ANNOTATION_VALUE);

    if (qualifierNames == null && valueNames == null) {
      messager.printMessage(Kind.ERROR, "All parameters must have an @Qualifier or a @Value annotation", varelement);
    } 
    if (qualifierNames != null) {
      dependencies.add(new InstanceDependencyModel(qualifierNames[0], varelement.asType().toString()));
      hasQualifiers = true;
    }
    if (valueNames != null) {
      //ignore values as they will be used to build beans and pass the data on, and
      //are not beans themselves... and cannot be intermingled with @Qualifiers.
      hasValues = true;
    }
  }
  if (hasValues && hasQualifiers) {
    messager.printMessage(Kind.ERROR, "No method may define both @Qualifier or a @Value annotations,"
        + " keep property values in there own beans", execelement);
  }
  if (hasValues &&  !model.isRootNode()) {
    messager.printMessage(Kind.ERROR, "Only @Verified(root=true) nodes may use @Value annotations to create beans,"
        + " decouples spring graph from environment", execelement);
  }
  return dependencies;
}
项目:AptSpring    文件:SpringAnnotationParser.java   
/**
 * Builds an instance model by finding the autowired constructor of an @Component model as well as 
 * 
 * @param te the TypeElement corresponding to the @Component class.
 * @param dm the definitionModel built from the @Component.
 * @param names the list if names in an @Component annotation.  Users must explicitly define one.
 * @param messager errors are added to this APT messager.
 */
private void addModelsFromComponent(TypeElement te, DefinitionModel dm, String[] names, Messager messager) {
  List<InstanceDependencyModel> dependencies = new ArrayList<>();
  ExecutableElement chosenConstructor = findAutowiredConstructor(extractConstructorsFromComponent(te));
  if (chosenConstructor == null) {
    messager.printMessage(Kind.ERROR, "No single default constructor or single @Autowired constructor", te);
  } else {
    dependencies = execElementDependency(messager, dm, chosenConstructor);
    //dm.getExpectedDefinitions()
  }
  te.getEnclosedElements().stream()
      .filter(el -> el instanceof VariableElement)
      .map(el -> (VariableElement) el)
      .filter(ve -> !staticPrivateFinalLiteralField.test(ve) && !privateFinalField.test(ve))
      .forEach(ve -> messager
          .printMessage(Kind.ERROR, "@Component classes my only have static final constant fields or final private fields", ve));

  InstanceModel model = new InstanceModel(names[0],
      dm.getIdentity(), 
      chosenConstructor, 
      te.getQualifiedName().toString(),
      dependencies, 
      new ArrayList<>());

  dm.addDefinition(model);
  for (InstanceDependencyModel dep : dependencies) {
    ExpectedModel expectedModel = new ExpectedModel(dep.getIdentity());
    expectedModel.addDefinitionReferenceToType(model.getIdentity(), dep.getType());
    dm.addDefinition(expectedModel);
  }
}
项目:AptSpring    文件:SpringAnnotationParser.java   
private void errorIfInvalidClass(TypeElement te, Messager messager) {
  if (te.getEnclosingElement().getKind() != ElementKind.PACKAGE) {
    messager.printMessage(Kind.ERROR, "The class must be a top level class, not an internal class", te);
  }
  if (AnnotationValueExtractor.getAnnotationValue(te, COMPONENTSCAN_TYPE, "basePackages") != null
      || AnnotationValueExtractor.getAnnotationValue(te, COMPONENTSCANS_TYPE, "basePackages") != null) {
    messager.printMessage(Kind.ERROR, "You may not use @ComponentScan(s) on @Verified classes", te);
  }
}
项目:AptSpring    文件:AptParsingContext.java   
/**
 * Gives user feedback as info/warnings/errors during compilation (works in m2e with takari-lifecycle).
 * 
 * @param messager APT round handler for user messages
 */
public void outputErrors(Messager messager) {
  Iterable<ErrorModel> errors = checkAndStoreValid();
  for (ErrorModel error : errors) {
    for (AbstractModel model : error.getInvolved()) {
      if (model.getSourceElement().isPresent()) {
        messager.printMessage(Kind.ERROR, error.getMessageOn(model, k -> getMessageFormats().getMessage(k)),
            getCorrespondingElement(elementUtils, model.getSourceElement().get()));
      } 
    }
  }
}
项目:openjdk-jdk10    文件:StopAfterError.java   
@Override
public boolean process(Set<? extends TypeElement> annotations, RoundEnvironment roundEnv) {
    if (roundEnv.processingOver()) {
        processingEnv.getMessager().printMessage(Kind.ERROR, "Stop!");
    }
    return false;
}
项目:openjdk-jdk10    文件:Messager.java   
@Override
public void print(Kind kind, Element e, String msg) {
            switch (kind) {
        case ERROR:
            printError(e, msg);
            return;
        case WARNING:
        case MANDATORY_WARNING:
            printWarning(e, msg);
            return;
        default:
            printWarning(e, msg);
            return;
    }
}
项目:openjdk-jdk10    文件:ResolveHarness.java   
public VerboseCandidateSubdiagProcessor(boolean mostSpecific, Phase phase, boolean success) {
    super(Kind.OTHER,
            "compiler.misc.applicable.method.found",
            "compiler.misc.applicable.method.found.1",
            "compiler.misc.not.applicable.method.found");
    this.mostSpecific = mostSpecific;
    this.phase = phase;
    this.success = success;
}
项目:OpenJSharp    文件:Checker.java   
@Override
public Void visitDocComment(DocCommentTree tree, Void ignore) {
    super.visitDocComment(tree, ignore);
    for (TagStackItem tsi: tagStack) {
        warnIfEmpty(tsi, null);
        if (tsi.tree.getKind() == DocTree.Kind.START_ELEMENT
                && tsi.tag.endKind == HtmlTag.EndKind.REQUIRED) {
            StartElementTree t = (StartElementTree) tsi.tree;
            env.messages.error(HTML, t, "dc.tag.not.closed", t.getName());
        }
    }
    return null;
}
项目:openjdk-jdk10    文件:Messager.java   
@Override
public void print(Kind kind, String msg) {
    switch (kind) {
        case ERROR:
            printError(msg);
            return;
        case WARNING:
        case MANDATORY_WARNING:
            printWarning(msg);
            return;
        default:
            printNotice(msg);
            return;
    }
}
项目:openjdk-jdk10    文件:TestMetafactoryBridges.java   
public void report(Diagnostic<? extends JavaFileObject> diagnostic) {
    if (diagnostic.getKind() == Diagnostic.Kind.ERROR) {
        errorFound = true;
    } else if (statProcessor.matches(diagnostic)) {
        statProcessor.process(diagnostic);
    }
}
项目:OpenJSharp    文件:Checker.java   
@Override
public Void visitLiteral(LiteralTree tree, Void ignore) {
    markEnclosingTag(Flag.HAS_INLINE_TAG);
    if (tree.getKind() == DocTree.Kind.CODE) {
        for (TagStackItem tsi: tagStack) {
            if (tsi.tag == HtmlTag.CODE) {
                env.messages.warning(HTML, tree, "dc.tag.code.within.code");
                break;
            }
        }
    }
    return super.visitLiteral(tree, ignore);
}
项目:OpenJSharp    文件:Util.java   
private Diagnostic<JavaFileObject> createDiagnostic(
        final Diagnostic.Kind kind, final String code, final Object... args) {
    return new Diagnostic<JavaFileObject>() {
        public String getCode() {
            return code;
        }
        public long getColumnNumber() {
            return Diagnostic.NOPOS;
        }
        public long getEndPosition() {
            return Diagnostic.NOPOS;
        }
        public Kind getKind() {
            return kind;
        }
        public long getLineNumber() {
            return Diagnostic.NOPOS;
        }
        public String getMessage(Locale locale) {
            if (code.length() == 0)
                return (String) args[0];
            return getText(code, args); // FIXME locale
        }
        public long getPosition() {
            return Diagnostic.NOPOS;
        }
        public JavaFileObject getSource() {
            return null;
        }
        public long getStartPosition() {
            return Diagnostic.NOPOS;
        }
    };
}
项目:qualifier    文件:StaticQualifierMetamodelProcessor.java   
private void processAnnotated(Element element) {
    Qualify.Extend extend = element.getAnnotation(Qualify.Extend.class);
    if (extend != null) {
        if (mixinMetamodel != null) print(Kind.ERROR, "multiple mixin definitions", element);
        TypeElement mixin = qualifyExtendValue(extend);
        if (!mixin.equals(typeElementFor(Object.class))) {
            mixinMetamodel = ClassName.bestGuess(getQualifierName(getFlatName(mixin)));
        }
        mixinProperty = extend.name().isEmpty() ? name : extend.name();
    }
    getProviders().forEach(extension -> extension.processAnnotated(element, metadata()));
}
项目:openjdk-jdk10    文件:ShowTypePlugin.java   
@Override
public void finished(TaskEvent taskEvent) {
    if (taskEvent.getKind().equals(TaskEvent.Kind.ANALYZE)) {
        CompilationUnitTree compilationUnit = taskEvent.getCompilationUnit();
        visitor.scan(compilationUnit, null);
    }
}
项目:MaxSim    文件:TruffleTypes.java   
public boolean verify(ProcessorContext context, Element element, AnnotationMirror mirror) {
    if (errors.isEmpty()) {
        return true;
    }

    for (String error : errors) {
        context.getLog().message(Kind.ERROR, element, mirror, null, error);
    }

    return false;
}
项目:MaxSim    文件:ServiceProviderProcessor.java   
private boolean verifyAnnotation(TypeMirror serviceInterface, TypeElement serviceProvider) {
    if (!processingEnv.getTypeUtils().isSubtype(serviceProvider.asType(), serviceInterface)) {
        String msg = String.format("Service provider class %s doesn't implement service interface %s", serviceProvider.getSimpleName(), serviceInterface);
        processingEnv.getMessager().printMessage(Kind.ERROR, msg, serviceProvider);
        return false;
    }

    return true;
}