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


Java CompileContext类代码示例

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


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

示例1: instrument

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Nullable
@Override
protected BinaryContent instrument(final CompileContext context,
                                   final CompiledClass compiled,
                                   final ClassReader reader,
                                   final ClassWriter writer,
                                   final InstrumentationClassFinder finder) {
  final long ms = System.currentTimeMillis();
  String className = compiled.getClassName();
  if (className == null) {
    LOG.debug("class name is empty for " + compiled.getOutputFile().getAbsolutePath());
  }
  else {
    className = className.replace('.', '/');
    for (final ClassFilesIndexWriter index : myIndexWriters) {
      index.update(className, reader);
    }
  }
  myMs.addAndGet(System.currentTimeMillis() - ms);
  myFilesCount.incrementAndGet();
  return null;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:23,代码来源:ClassFilesIndicesBuilder.java

示例2: build

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Override
public void build(CompileContext context) throws ProjectBuildException {
  final Set<JpsSdk<?>> sdks = context.getProjectDescriptor().getProjectJavaSdks();
  JpsSdk javaSdk = null;
  for (JpsSdk<?> sdk : sdks) {
    final JpsSdkType<? extends JpsElement> sdkType = sdk.getSdkType();
    if (sdkType instanceof JpsJavaSdkType) {
      javaSdk = sdk;
      break;
    }
  }
  if (javaSdk == null) {
    context.processMessage(new CompilerMessage(COMPILER_NAME, BuildMessage.Kind.ERROR, "Java version 7 or higher is required to build JavaFX package"));
    return;
  }
  new JpsJavaFxPackager(myProps, context, myArtifact).buildJavaFxArtifact(javaSdk.getHomePath());
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:JpsJavaFxArtifactBuildTaskProvider.java

示例3: instrument

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Override
@Nullable
protected BinaryContent instrument(CompileContext context,
                                   CompiledClass compiledClass,
                                   ClassReader reader,
                                   ClassWriter writer,
                                   InstrumentationClassFinder finder) {
  try {
    if (NotNullVerifyingInstrumenter.processClassFile(reader, writer)) {
      return new BinaryContent(writer.toByteArray());
    }
  }
  catch (Throwable e) {
    final StringBuilder msg = new StringBuilder();
    msg.append("@NotNull instrumentation failed ");
    final File sourceFile = compiledClass.getSourceFile();
    msg.append(" for ").append(sourceFile.getName());
    msg.append(": ").append(e.getMessage());
    context.processMessage(new CompilerMessage(getPresentableName(), BuildMessage.Kind.ERROR, msg.toString(), sourceFile.getPath()));
  }
  return null;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:23,代码来源:NotNullInstrumentingBuilder.java

示例4: isTargetDirty

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
public boolean isTargetDirty(CompileContext context) {
  final String currentState = getCurrentState(context);
  if (!currentState.equals(myConfiguration)) {
    LOG.debug(myTarget + " configuration was changed:");
    LOG.debug("Old:");
    LOG.debug(myConfiguration);
    LOG.debug("New:");
    LOG.debug(currentState);
    LOG.debug(myTarget + " will be recompiled");
    if (myTarget instanceof ModuleBuildTarget) {
      final JpsModule module = ((ModuleBuildTarget)myTarget).getModule();
      synchronized (MODULES_WITH_TARGET_CONFIG_CHANGED_KEY) {
        Set<JpsModule> modules = MODULES_WITH_TARGET_CONFIG_CHANGED_KEY.get(context);
        if (modules == null) {
          MODULES_WITH_TARGET_CONFIG_CHANGED_KEY.set(context, modules = new THashSet<JpsModule>());
        }
        modules.add(module);
      }
    }
    return true;
  }
  return false;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:24,代码来源:BuildTargetConfiguration.java

示例5: save

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
public void save(CompileContext context) {
  try {
    File configFile = getConfigFile();
    FileUtil.createParentDirs(configFile);
    Writer out = new BufferedWriter(new FileWriter(configFile));
    try {
      String current = getCurrentState(context);
      out.write(current);
      myConfiguration = current;
    }
    finally {
      out.close();
    }
  }
  catch (IOException e) {
    LOG.info("Cannot save configuration of " + myConfiguration, e);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:BuildTargetConfiguration.java

示例6: storeNonexistentOutputRoots

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
public void storeNonexistentOutputRoots(CompileContext context) throws IOException {
  Collection<File> outputRoots = myTarget.getOutputRoots(context);
  List<String> nonexistentOutputRoots = new SmartList<String>();
  for (File root : outputRoots) {
    if (!root.exists()) {
      nonexistentOutputRoots.add(root.getAbsolutePath());
    }
  }
  File file = getNonexistentOutputsFile();
  if (nonexistentOutputRoots.isEmpty()) {
    file.delete();
  }
  else {
    FileUtil.writeToFile(file, StringUtil.join(nonexistentOutputRoots, "\n"));
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:17,代码来源:BuildTargetConfiguration.java

示例7: findParentDescriptor

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Override
@Nullable
public <R extends BuildRootDescriptor> R findParentDescriptor(@NotNull File file, @NotNull Collection<? extends BuildTargetType<? extends BuildTarget<R>>> types,
                                                              @Nullable CompileContext context) {
  File current = file;
  int depth = 0;
  while (current != null) {
    final List<R> descriptors = filterDescriptorsByFile(getRootDescriptors(current, types, context), file, depth);
    if (!descriptors.isEmpty()) {
      return descriptors.get(0);
    }
    current = FileUtilRt.getParentFile(current);
    depth++;
  }
  return null;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:17,代码来源:BuildRootIndexImpl.java

示例8: findAllParentDescriptors

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Override
@NotNull
public <R extends BuildRootDescriptor> Collection<R> findAllParentDescriptors(@NotNull File file,
                                                                              @Nullable Collection<? extends BuildTargetType<? extends BuildTarget<R>>> types,
                                                                              @Nullable CompileContext context) {
  File current = file;
  List<R> result = null;
  int depth = 0;
  while (current != null) {
    List<R> descriptors = filterDescriptorsByFile(getRootDescriptors(current, types, context), file, depth);
    if (!descriptors.isEmpty()) {
      if (result == null) {
        result = descriptors;
      }
      else {
        result = new ArrayList<R>(result);
        result.addAll(descriptors);
      }
    }
    current = FileUtilRt.getParentFile(current);
    depth++;
  }
  return result != null ? result : Collections.<R>emptyList();
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:25,代码来源:BuildRootIndexImpl.java

示例9: instrument

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Nullable
@Override
protected BinaryContent instrument(CompileContext context, CompiledClass compiled, ClassReader reader, ClassWriter writer, InstrumentationClassFinder finder) {
  final JpsIntelliLangConfiguration config =
    JpsIntelliLangExtensionService.getInstance().getConfiguration(context.getProjectDescriptor().getModel().getGlobal());
  final PatternInstrumenter instrumenter =
    new PatternInstrumenter(config.getPatternAnnotationClass(), writer, config.getInstrumentationType(), finder);
  try {
    reader.accept(instrumenter, 0);
    if (instrumenter.instrumented()) {
      return new BinaryContent(writer.toByteArray());
    }
  }
  catch (InstrumentationException e) {
    context.processMessage(new CompilerMessage(getPresentableName(), BuildMessage.Kind.ERROR, e.getMessage()));
  }
  return null;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:19,代码来源:PatternValidatorBuilder.java

示例10: buildTarget

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Override
protected void buildTarget(@NotNull AndroidResourcePackagingBuildTarget target,
                           @NotNull DirtyFilesHolder<BuildRootDescriptor, AndroidResourcePackagingBuildTarget> holder,
                           @NotNull BuildOutputConsumer outputConsumer,
                           @NotNull CompileContext context) throws ProjectBuildException, IOException {
  final boolean releaseBuild = AndroidJpsUtil.isReleaseBuild(context);
  final AndroidPackagingStateStorage packagingStateStorage =
    context.getProjectDescriptor().dataManager.getStorage(target, AndroidPackagingStateStorage.Provider.INSTANCE);

  if (!holder.hasDirtyFiles() && !holder.hasRemovedFiles()) {
    final AndroidPackagingStateStorage.MyState savedState = packagingStateStorage.read();

    if (savedState != null && savedState.isRelease() == releaseBuild) {
      return;
    }
  }
  assert !AndroidJpsUtil.isLightBuild(context);

  if (!packageResources(target, context, outputConsumer, releaseBuild)) {
    throw new StopBuildException();
  }
  packagingStateStorage.saveState(new AndroidPackagingStateStorage.MyState(releaseBuild));
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:24,代码来源:AndroidResourcePackagingBuilder.java

示例11: getOutputRoots

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@NotNull
@Override
public Collection<File> getOutputRoots(CompileContext context) {
  final File moduleOutputDir = ProjectPaths.getModuleOutputDir(myModule, false);
  final JpsAndroidModuleExtension extension = AndroidJpsUtil.getExtension(myModule);

  if (moduleOutputDir == null || extension == null) {
    return Collections.emptyList();
  }
  final String outputPath = AndroidJpsUtil.getApkPath(extension, moduleOutputDir);

  if (outputPath == null) {
    return Collections.emptyList();
  }
  return Collections.singletonList(new File(outputPath));
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:17,代码来源:AndroidPackagingBuildTarget.java

示例12: copyFile

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
public void copyFile(File file, Ref<File> targetFileRef, ResourceRootConfiguration rootConfiguration, CompileContext context,
                     FileFilter filteringFilter) throws IOException {
  boolean shouldFilter = rootConfiguration.isFiltered && !rootConfiguration.filters.isEmpty() && filteringFilter.accept(file);
  if (shouldFilter && file.length() > FILTERING_SIZE_LIMIT) {
    context.processMessage(new CompilerMessage(
      GradleResourcesBuilder.BUILDER_NAME, BuildMessage.Kind.WARNING,
      "File is too big to be filtered. Most likely it is a binary file and should be excluded from filtering", file.getPath())
    );
    shouldFilter = false;
  }
  if (shouldFilter) {
    copyWithFiltering(file, targetFileRef, rootConfiguration.filters, context);
  }
  else {
    FileUtil.copyContent(file, targetFileRef.get());
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:GradleResourceFileProcessor.java

示例13: copyWithFiltering

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
private static void copyWithFiltering(File file, Ref<File> outputFileRef, List<ResourceRootFilter> filters, CompileContext context)
  throws IOException {
  final FileInputStream originalInputStream = new FileInputStream(file);
  try {
    final InputStream inputStream = transform(filters, originalInputStream, outputFileRef, context);
    FileUtil.createIfDoesntExist(outputFileRef.get());
    FileOutputStream outputStream = new FileOutputStream(outputFileRef.get());
    try {
      FileUtil.copy(inputStream, outputStream);
    }
    finally {
      StreamUtil.closeStream(inputStream);
      StreamUtil.closeStream(outputStream);
    }
  }
  finally {
    StreamUtil.closeStream(originalInputStream);
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:GradleResourceFileProcessor.java

示例14: getOutputRoots

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@NotNull
@Override
public Collection<File> getOutputRoots(CompileContext context) {
  MavenModuleResourceConfiguration configuration =
    getModuleResourcesConfiguration(context.getProjectDescriptor().dataManager.getDataPaths());
  if (configuration == null) return Collections.emptyList();

  final Set<File> result = new THashSet<File>(FileUtil.FILE_HASHING_STRATEGY);
  final File moduleOutput = getModuleOutputDir();
  for (ResourceRootConfiguration resConfig : getRootConfigurations(configuration)) {
    final File output = getOutputDir(moduleOutput, resConfig, configuration.outputDirectory);
    if (output != null) {
      result.add(output);
    }
  }
  return result;
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:18,代码来源:MavenResourcesTarget.java

示例15: build

import org.jetbrains.jps.incremental.CompileContext; //导入依赖的package包/类
@Override
public void build(CompileContext context) throws ProjectBuildException {
  BuildDataPaths dataPaths = context.getProjectDescriptor().dataManager.getDataPaths();
  MavenProjectConfiguration projectConfiguration = JpsMavenExtensionService.getInstance().getMavenProjectConfiguration(dataPaths);
  if (projectConfiguration == null) return;

  final MavenModuleResourceConfiguration moduleResourceConfiguration = projectConfiguration.moduleConfigurations.get(getModuleName(myArtifact.getName()));
  if (moduleResourceConfiguration != null && StringUtil.isNotEmpty(moduleResourceConfiguration.manifest)) {
    try {
      File output = new File(myArtifact.getOutputPath(), JarFile.MANIFEST_NAME);
      FileUtil.writeToFile(output, Base64.decode(moduleResourceConfiguration.manifest));
      handleSkinnyWars(context, projectConfiguration, moduleResourceConfiguration);
    }
    // do not fail the whole 'Make' if there is an invalid manifest cached (e.g. non encoded string generated by previous IDEA version)
    catch (Exception e) {
      LOG.debug(e);
    }
  }
}
 
开发者ID:jskierbi,项目名称:intellij-ce-playground,代码行数:20,代码来源:MavenManifestGenerationBuildTaskProvider.java


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