public List translateMessages()

in text-translators-agent/src/jetbrains/buildServer/agent/messages/TextBuildMessagesTranslator.java [62:124]


  public List<BuildMessage1> translateMessages(@NotNull final AgentRunningBuild build, @NotNull final List<BuildMessage1> messages) {
    final BuildLogTail tail = ((AgentRunningBuildEx) build).getBuildLogTail();
    if (!String.valueOf(build.getBuildId()).equals(tail.getBuildId())) {
      return messages;
    }
    // Only text messages processed
    for (BuildMessage1 message : messages) {
      if (!DefaultMessagesInfo.MSG_TEXT.equals(message.getTypeId())) {
        return messages;
      }
    }

    final ArrayList<BuildMessage1> result = new ArrayList<BuildMessage1>(messages.size());
    final List<SimpleMessagesTranslator> translators = getAllTranslators((AgentRunningBuildEx) build);


    for (BuildMessage1 message : messages) {
      ServiceMessagesProcessor.processTextMessage(message, new AbstractTextMessageProcessor() {
        public void processServiceMessage(final @NotNull ServiceMessage message, final @NotNull BuildMessage1 originalMessage) {
          if (ServiceMessage.DISABLE.equals(message.getMessageName())) {
            mySuspendServiceMessages = true;
            return;
          }
          if (ServiceMessage.ENABLE.equals(message.getMessageName())) {
            mySuspendServiceMessages = false;
            return;
          }
          if (mySuspendServiceMessages) return;

          for (SimpleMessagesTranslator simpleMessagesTranslator : translators) {
            final SimpleMessagesTranslator.Result result1 = simpleMessagesTranslator.doProcessMessage(message, tail);
            if (!result1.isConsumed()) continue;
            final List<BuildMessage1> additional = new ArrayList<BuildMessage1>();
            if (result1.isKeepOrigin()) {
              additional.add(originalMessage);
            }
            additional.addAll(result1.getMessages());
            result.addAll(additional);
          }
        }

        @Override
        public void processText(final @NotNull BuildMessage1 originalMessage) {
          for (SimpleMessagesTranslator simpleMessagesTranslator : translators) {
            final SimpleMessagesTranslator.Result result1 = simpleMessagesTranslator.doProcessText((String) originalMessage.getValue(), tail);
            if (!result1.isConsumed()) continue;
            final List<BuildMessage1> additional = new ArrayList<BuildMessage1>();
            if (result1.isKeepOrigin()) {
              additional.add(originalMessage);
            }
            additional.addAll(result1.getMessages());
            result.addAll(additional);
          }
        }

        @Override
        public void processParseException(final @NotNull ParseException e, final @NotNull BuildMessage1 originalMessage) {
          LOG.warn("Invalid service message: " + originalMessage.getValue() + ", error: " + e.toString());
        }
      });
    }
    return result;
  }