Exemple #1
0
  private void collectMessagesImpl(
      List<Message> collectedMessages, Set<MessageContainer> visitedSinks) {
    collectedMessages.addAll(getMessages());
    for (MessageContainer sink : findChildContainers()) {
      if (visitedSinks.contains(sink)) {
        return;
      }

      visitedSinks.add(sink);
      sink.collectMessagesImpl(collectedMessages, visitedSinks);
    }
  }
Exemple #2
0
  private void emitMessagesImpl(
      TypeElement baseElement, Log log, Set<MessageContainer> visitedSinks) {
    for (Message message : getMessages()) {
      emitDefault(baseElement, log, message);
    }

    for (MessageContainer sink : findChildContainers()) {
      if (visitedSinks.contains(sink)) {
        continue;
      }

      visitedSinks.add(sink);
      sink.emitMessagesImpl(baseElement, log, visitedSinks);
    }
  }
Exemple #3
0
  private boolean hasErrorsImpl(Set<MessageContainer> visitedSinks) {
    for (Message msg : getMessages()) {
      if (msg.getKind() == Kind.ERROR) {
        return true;
      }
    }
    for (MessageContainer sink : findChildContainers()) {
      if (visitedSinks.contains(sink)) {
        return false;
      }

      visitedSinks.add(sink);

      if (sink.hasErrorsImpl(visitedSinks)) {
        return true;
      }
    }
    return false;
  }
Exemple #4
0
 private void emitDefault(TypeElement baseType, Log log, Message message) {
   TypeElement rootEnclosing = Utils.findRootEnclosingType(getMessageElement());
   if (rootEnclosing != null
       && Utils.typeEquals(baseType.asType(), rootEnclosing.asType())
       && this == message.getOriginalContainer()) {
     log.message(
         message.getKind(),
         getMessageElement(),
         getMessageAnnotation(),
         getMessageAnnotationValue(),
         message.getText());
   } else {
     MessageContainer original = message.getOriginalContainer();
     log.message(
         message.getKind(),
         baseType,
         null,
         null,
         wrapText(
             original.getMessageElement(), original.getMessageAnnotation(), message.getText()));
   }
 }