当前位置: 首页>>代码示例>>Java>>正文


Java BuildMessage.Kind方法代码示例

本文整理汇总了Java中org.jetbrains.jps.incremental.messages.BuildMessage.Kind方法的典型用法代码示例。如果您正苦于以下问题:Java BuildMessage.Kind方法的具体用法?Java BuildMessage.Kind怎么用?Java BuildMessage.Kind使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在org.jetbrains.jps.incremental.messages.BuildMessage的用法示例。


在下文中一共展示了BuildMessage.Kind方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: outputLineAvailable

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
public void outputLineAvailable(String line) {
  if (!StringUtil.isEmpty(line)) {
    if (line.startsWith(ExternalJavacManager.STDOUT_LINE_PREFIX)) {
      //noinspection UseOfSystemOutOrSystemErr
      System.out.println(line);
    }
    else if (line.startsWith(ExternalJavacManager.STDERR_LINE_PREFIX)) {
      //noinspection UseOfSystemOutOrSystemErr
      System.err.println(line);
    }
    else if (line.contains("java.lang.OutOfMemoryError")) {
      myContext.processMessage(new CompilerMessage(BUILDER_NAME, BuildMessage.Kind.ERROR, "OutOfMemoryError: insufficient memory"));
      myErrorCount++;
    }
    else {
      final BuildMessage.Kind kind = getKindByMessageText(line);
      if (kind == BuildMessage.Kind.ERROR) {
        myErrorCount++;
      }
      else if (kind == BuildMessage.Kind.WARNING) {
        myWarningCount++;
      }
      myContext.processMessage(new CompilerMessage(BUILDER_NAME, kind, line));
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:27,代码来源:JavaBuilder.java

示例2: addMessages

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
public static void addMessages(@NotNull CompileContext context,
                               @NotNull Map<AndroidCompilerMessageKind, List<String>> messages,
                               @NotNull String builderName,
                               @NotNull String entryName) {
  for (Map.Entry<AndroidCompilerMessageKind, List<String>> entry : messages.entrySet()) {
    for (String message : entry.getValue()) {
      String filePath = null;
      int line = -1;
      final Matcher matcher = AndroidCommonUtils.COMPILER_MESSAGE_PATTERN.matcher(message);

      if (matcher.matches()) {
        filePath = matcher.group(1);
        line = Integer.parseInt(matcher.group(2));
      }
      final BuildMessage.Kind category = toBuildMessageKind(entry.getKey());
      if (category != null) {
        context.processMessage(
          new CompilerMessage(builderName, category, '[' + entryName + "] " + message, filePath, -1L, -1L, -1L, line, -1L));
      }
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:23,代码来源:AndroidJpsUtil.java

示例3: addMessages

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
private static void addMessages(@NotNull CompileContext context,
                                @NotNull Map<AndroidCompilerMessageKind, List<String>> messages,
                                @NotNull String sourcePath,
                                @NotNull String builderName) {
  for (Map.Entry<AndroidCompilerMessageKind, List<String>> entry : messages.entrySet()) {
    final AndroidCompilerMessageKind kind = entry.getKey();
    final BuildMessage.Kind buildMessageKind = AndroidJpsUtil.toBuildMessageKind(kind);

    if (buildMessageKind == null) {
      continue;
    }

    for (String message : entry.getValue()) {
      context.processMessage(new CompilerMessage(builderName, buildMessageKind, message, sourcePath));
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:AndroidSourceGeneratingBuilder.java

示例4: outputLineAvailable

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
public void outputLineAvailable(String line) {
  if (!StringUtil.isEmpty(line)) {
    if (line.contains("java.lang.OutOfMemoryError")) {
      myContext.processMessage(new CompilerMessage(BUILDER_NAME, BuildMessage.Kind.ERROR, "OutOfMemoryError: insufficient memory"));
      myErrorCount++;
    }
    else {
      final BuildMessage.Kind kind = getKindByMessageText(line);
      if (kind == BuildMessage.Kind.ERROR) {
        myErrorCount++;
      }
      else if (kind == BuildMessage.Kind.WARNING) {
        myWarningCount++;
      }
      myContext.processMessage(new CompilerMessage(BUILDER_NAME, kind, line));
    }
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:19,代码来源:JavaBuilder.java

示例5: getKindByMessageText

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
private static BuildMessage.Kind getKindByMessageText(String line) {
  final String lowercasedLine = line.toLowerCase(Locale.US);
  if (lowercasedLine.contains("error") || lowercasedLine.contains("requires target release")) {
    return BuildMessage.Kind.ERROR;
  }
  return BuildMessage.Kind.INFO;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:8,代码来源:JavaBuilder.java

示例6: lineAvailable

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
@Override
protected void lineAvailable(String line) {
  if (!StringUtil.isEmpty(line)) {
    BuildMessage.Kind kind = BuildMessage.Kind.INFO;
    if (line.contains("error")) {
      kind = BuildMessage.Kind.ERROR;
      myErrorsReported = true;
    }
    else if (line.contains("warning")) {
      kind = BuildMessage.Kind.WARNING;
    }
    myContext.processMessage(new CompilerMessage(myCompilerName, kind, line));
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:15,代码来源:RmiStubsGenerator.java

示例7: createCompilerMessages

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
/**
 * Adapter method to create IDEA CompilerMessages from an Android build Message.
 *
 * If the Android build message has multiple source locations, this will create multiple CompilerMesssages with the same kind and
 * messageText, but different source positions.
 */
@NotNull
public static List<CompilerMessage> createCompilerMessages(@NotNull Message message) {
  final BuildMessage.Kind kind;
  switch (message.getKind()) {
    case INFO:
      kind = BuildMessage.Kind.INFO;
      break;
    case WARNING:
      kind = BuildMessage.Kind.WARNING;
      break;
    case ERROR:
      kind = BuildMessage.Kind.ERROR;
      break;
    default:
      kind = BuildMessage.Kind.PROGRESS;
  }
  List<CompilerMessage> compilerMessages = new ArrayList<CompilerMessage>();
  for (SourceFilePosition filePosition : message.getSourceFilePositions()) {
    File sourceFile = filePosition.getFile().getSourceFile();
    String sourceFilePath = sourceFile != null ? sourceFile.getAbsolutePath() : null;
    SourcePosition pos = filePosition.getPosition();
    compilerMessages.add(
      new CompilerMessage(COMPILER_NAME, kind, message.getText().trim(), sourceFilePath, pos.getStartOffset(), pos.getEndOffset(),
                          pos.getEndOffset(), pos.getEndLine(), pos.getEndColumn()));
  }
  return Collections.unmodifiableList(compilerMessages);
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:34,代码来源:AndroidGradleJps.java

示例8: toBuildMessageKind

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
@Nullable
public static BuildMessage.Kind toBuildMessageKind(@NotNull AndroidCompilerMessageKind kind) {
  switch (kind) {
    case ERROR:
      return BuildMessage.Kind.ERROR;
    case INFORMATION:
      return BuildMessage.Kind.INFO;
    case WARNING:
      return BuildMessage.Kind.WARNING;
    default:
      LOG.error("unknown AndroidCompilerMessageKind object " + kind);
      return null;
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:15,代码来源:AndroidJpsUtil.java

示例9: toBuildMessageKind

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
private static BuildMessage.Kind toBuildMessageKind(IMergerLog.Severity severity) {
  if (severity == null) {
    return BuildMessage.Kind.INFO;
  }
  switch (severity) {
    case INFO:
      return BuildMessage.Kind.INFO;
    case WARNING:
      return BuildMessage.Kind.WARNING;
    case ERROR:
      return BuildMessage.Kind.ERROR;
    default:
      return BuildMessage.Kind.INFO;
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:16,代码来源:AndroidManifestMergingBuilder.java

示例10: processMessage

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
@Override
public void processMessage(BuildMessage msg) {
  BuildMessage.Kind kind = msg.getKind();
  String text = msg.getMessageText();
  switch (kind) {
    case ERROR:
      String compilerName = msg instanceof CompilerMessage ? ((CompilerMessage)msg).getCompilerName() : "";
      myBuildInfoPrinter.printCompilationErrors(JpsGantProjectBuilder.this, compilerName, text);
      error("Compilation failed");
      break;
    case WARNING:
      warning(text);
      break;
    case INFO:
      if (!text.isEmpty()) {
        info(text);
      }
      break;
    case PROGRESS:
      if (msg instanceof BuildingTargetProgressMessage) {
        String targetsString = StringUtil.join(((BuildingTargetProgressMessage)msg).getTargets(),
                                               new NotNullFunction<BuildTarget<?>, String>() {
                                                 @NotNull
                                                 @Override
                                                 public String fun(BuildTarget<?> dom) {
                                                   return dom.getPresentableName();
                                                 }
                                               }, ",");
        switch (((BuildingTargetProgressMessage)msg).getEventType()) {
          case STARTED:
            myBuildInfoPrinter.printBlockOpenedMessage(JpsGantProjectBuilder.this, targetsString);
            break;
          case FINISHED:
            myBuildInfoPrinter.printBlockClosedMessage(JpsGantProjectBuilder.this, targetsString);
            break;
        }
      }
      break;
  }
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:41,代码来源:JpsGantProjectBuilder.java

示例11: getMessageCategory

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
private static CompilerMessageCategory getMessageCategory(CompilerMessage compilerMessage) {
  BuildMessage.Kind category = compilerMessage.getKind();

  if (BuildMessage.Kind.ERROR.equals(category)) return CompilerMessageCategory.ERROR;
  if (BuildMessage.Kind.INFO.equals(category)) return CompilerMessageCategory.INFORMATION;
  if (BuildMessage.Kind.WARNING.equals(category)) return CompilerMessageCategory.WARNING;

  return CompilerMessageCategory.ERROR;
}
 
开发者ID:lshain-android-source,项目名称:tools-idea,代码行数:10,代码来源:GroovyCompilerBase.java

示例12: reportProblems

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
private void reportProblems(ProblemProvider problemProvider, CallGraph callGraph) {
    for (Problem problem : problemProvider.getProblems()) {
        BuildMessage.Kind kind;
        switch (problem.getSeverity()) {
            case ERROR:
                kind = BuildMessage.Kind.ERROR;
                break;
            case WARNING:
                kind = BuildMessage.Kind.WARNING;
                break;
            default:
                continue;
        }

        DefaultProblemTextConsumer textConsumer = new DefaultProblemTextConsumer();
        problem.render(textConsumer);
        String baseText = textConsumer.getText();

        List<ProblemToReport> problemsToReport = resolveProblemLocation(problem, callGraph);

        if (problemsToReport.isEmpty()) {
            context.processMessage(new CompilerMessage("TeaVM", kind, problem.getText(), null,
                    -1, -1, -1, -1, -1));
        }
        for (ProblemToReport problemToReport : problemsToReport) {
            String text = baseText + buildCallStack(problemToReport.locations);
            context.processMessage(new CompilerMessage("TeaVM", kind, text, problemToReport.path,
                    problemToReport.startOffset, problemToReport.endOffset, problemToReport.startOffset,
                    problemToReport.line, 0));
        }
    }
}
 
开发者ID:konsoletyper,项目名称:teavm,代码行数:33,代码来源:TeaVMBuild.java

示例13: createCompileMessage

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
public static BuilderMessage createCompileMessage(final BuildMessage.Kind kind,
                                                                             String text,
                                                                             String path,
                                                                             long beginOffset, long endOffset, long offset, long line,
                                                                             long column, float done) {

  final BuilderMessage.CompileMessage.Builder builder = BuilderMessage.CompileMessage.newBuilder();
  switch (kind) {
    case ERROR:
      builder.setKind(BuilderMessage.CompileMessage.Kind.ERROR);
      break;
    case WARNING:
      builder.setKind(BuilderMessage.CompileMessage.Kind.WARNING);
      break;
    case INFO:
      builder.setKind(BuilderMessage.CompileMessage.Kind.INFO);
      break;
    default:
      builder.setKind(BuilderMessage.CompileMessage.Kind.PROGRESS);
  }
  if (text != null) {
    builder.setText(text);
  }
  if (path != null) {
    builder.setSourceFilePath(path);
  }
  if (beginOffset >= 0L) {
    builder.setProblemBeginOffset(beginOffset);
  }
  if (endOffset >= 0L) {
    builder.setProblemEndOffset(endOffset);
  }
  if (offset >= 0L) {
    builder.setProblemLocationOffset(offset);
  }
  if (line >= 0L) {
    builder.setLine(line);
  }
  if (column >= 0L) {
    builder.setColumn(column);
  }
  if (done >= 0.0f) {
    builder.setDone(done);
  }
  return BuilderMessage.newBuilder().setType(BuilderMessage.Type.COMPILE_MESSAGE).setCompileMessage(builder.build()).build();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:47,代码来源:CmdlineProtoUtil.java

示例14: getMessages

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
@NotNull
public List<BuildMessage> getMessages(@NotNull BuildMessage.Kind kind) {
  if (kind == BuildMessage.Kind.ERROR) return myErrorMessages;
  else if (kind == BuildMessage.Kind.WARNING) return myWarnMessages;
  else return myInfoMessages;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:7,代码来源:BuildResult.java

示例15: processMessage

import org.jetbrains.jps.incremental.messages.BuildMessage; //导入方法依赖的package包/类
@Override
public void processMessage(BuildMessage msg) {
  BuildMessage.Kind kind = msg.getKind();
  String text = msg.getMessageText();
  switch (kind) {
    case ERROR:
      String compilerName;
      String messageText;
      if (msg instanceof CompilerMessage) {
        CompilerMessage compilerMessage = (CompilerMessage)msg;
        compilerName = compilerMessage.getCompilerName();
        String sourcePath = compilerMessage.getSourcePath();
        if (sourcePath != null) {
          messageText = sourcePath + (compilerMessage.getLine() != -1 ? ":" + compilerMessage.getLine() : "") + ":\n" + text;
        }
        else {
          messageText = text;
        }
      }
      else {
        compilerName = "";
        messageText = text;
      }
      myFailed = true;
      myBuildInfoPrinter.printCompilationErrors(JpsGantProjectBuilder.this, compilerName, messageText);
      break;
    case WARNING:
      warning(text);
      break;
    case INFO:
      if (msg instanceof BuilderStatisticsMessage) {
        BuilderStatisticsMessage message = (BuilderStatisticsMessage)msg;
        String buildKind = myBuildIncrementally ? " (incremental)" : "";
        myBuildInfoPrinter.printStatisticsMessage(JpsGantProjectBuilder.this, "Compilation time '" + message.getBuilderName() + "'" + buildKind + ", ms",
                                                  String.valueOf(message.getElapsedTimeMs()));
        int sources = message.getNumberOfProcessedSources();
        myBuildInfoPrinter.printStatisticsMessage(JpsGantProjectBuilder.this, "Processed files by '" + message.getBuilderName() + "'" + buildKind,
                                                  String.valueOf(sources));
        if (!myBuildIncrementally && sources > 0) {
          myBuildInfoPrinter.printStatisticsMessage(JpsGantProjectBuilder.this, "Compilation time per file for '" + message.getBuilderName() + "', ms",
                                                    String.format(Locale.US, "%.2f", (double)message.getElapsedTimeMs() / sources));
        }
      }
      else if (!text.isEmpty()) {
        info(text);
      }
      break;
    case PROGRESS:
      if (msg instanceof BuildingTargetProgressMessage) {
        String targetsString = StringUtil.join(((BuildingTargetProgressMessage)msg).getTargets(),
                                               new NotNullFunction<BuildTarget<?>, String>() {
                                                 @NotNull
                                                 @Override
                                                 public String fun(BuildTarget<?> dom) {
                                                   return dom.getPresentableName();
                                                 }
                                               }, ",");
        switch (((BuildingTargetProgressMessage)msg).getEventType()) {
          case STARTED:
            myBuildInfoPrinter.printBlockOpenedMessage(JpsGantProjectBuilder.this, targetsString);
            break;
          case FINISHED:
            myBuildInfoPrinter.printBlockClosedMessage(JpsGantProjectBuilder.this, targetsString);
            break;
        }
      }
      break;
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:70,代码来源:JpsGantProjectBuilder.java


注:本文中的org.jetbrains.jps.incremental.messages.BuildMessage.Kind方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。