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


Java SkylarkList.castSkylarkListOrNoneToList方法代码示例

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


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

示例1: createInstanceFromSkylark

import com.google.devtools.build.lib.syntax.SkylarkList; //导入方法依赖的package包/类
@Override
protected PlatformInfo createInstanceFromSkylark(Object[] args, Location loc)
    throws EvalException {
  // Based on SIGNATURE above, the args are label, constraint_values.

  Label label = (Label) args[0];
  List<ConstraintValueInfo> constraintValues =
      SkylarkList.castSkylarkListOrNoneToList(
          args[1], ConstraintValueInfo.class, "constraint_values");
  try {
    return builder()
        .setLabel(label)
        .addConstraints(constraintValues)
        .setLocation(loc)
        .build();
  } catch (DuplicateConstraintException dce) {
    throw new EvalException(
        loc, String.format("Cannot create PlatformInfo: %s", dce.getMessage()));
  }
}
 
开发者ID:bazelbuild,项目名称:bazel,代码行数:21,代码来源:PlatformInfo.java

示例2: setAllowedFileTypes

import com.google.devtools.build.lib.syntax.SkylarkList; //导入方法依赖的package包/类
private static void setAllowedFileTypes(
    String attr, Object fileTypesObj, FuncallExpression ast, Attribute.Builder<?> builder)
    throws EvalException {
  if (fileTypesObj == Boolean.TRUE) {
    builder.allowedFileTypes(FileTypeSet.ANY_FILE);
  } else if (fileTypesObj == Boolean.FALSE) {
    builder.allowedFileTypes(FileTypeSet.NO_FILE);
  } else if (fileTypesObj instanceof SkylarkFileType) {
    // TODO(laurentlb): deprecated, to be removed
    builder.allowedFileTypes(((SkylarkFileType) fileTypesObj).getFileTypeSet());
  } else if (fileTypesObj instanceof SkylarkList) {
    List<String> arg =
        SkylarkList.castSkylarkListOrNoneToList(
            fileTypesObj, String.class, "allow_files argument");
    builder.allowedFileTypes(FileType.of(arg));
  } else {
    throw new EvalException(
        ast.getLocation(), attr + " should be a boolean or a string list");
  }
}
 
开发者ID:bazelbuild,项目名称:bazel,代码行数:21,代码来源:SkylarkAttr.java

示例3: registerSpawnAction

import com.google.devtools.build.lib.syntax.SkylarkList; //导入方法依赖的package包/类
/**
 * Setup for spawn actions common between {@link #run} and {@link #runShell}.
 *
 * <p>{@code builder} should have either executable or a command set.
 */
private void registerSpawnAction(
    SkylarkList outputs,
    Object inputs,
    Object mnemonicUnchecked,
    Object progressMessage,
    Boolean useDefaultShellEnv,
    Object envUnchecked,
    Object executionRequirementsUnchecked,
    Object inputManifestsUnchecked,
    SpawnAction.Builder builder)
    throws EvalException {
  // TODO(bazel-team): builder still makes unnecessary copies of inputs, outputs and args.
  Iterable<Artifact> inputArtifacts;
  if (inputs instanceof SkylarkList) {
    inputArtifacts = ((SkylarkList) inputs).getContents(Artifact.class, "inputs");
    builder.addInputs(inputArtifacts);
  } else {
    inputArtifacts = ((SkylarkNestedSet) inputs).toCollection(Artifact.class);
    builder.addInputs(((SkylarkNestedSet) inputs).getSet(Artifact.class));
  }
  builder.addOutputs(outputs.getContents(Artifact.class, "outputs"));

  // The actual command can refer to an executable from the inputs, which could require
  // some runfiles. Consequently, we add the runfiles of all inputs of this action manually.
  for (Artifact current : inputArtifacts) {
    FilesToRunProvider provider = context.getExecutableRunfiles(current);
    if (provider != null) {
      builder.addTool(provider);
    }
  }

  String mnemonic = getMnemonic(mnemonicUnchecked);
  builder.setMnemonic(mnemonic);
  if (envUnchecked != Runtime.NONE) {
    builder.setEnvironment(
        ImmutableMap.copyOf(
            SkylarkDict.castSkylarkDictOrNoneToDict(
                envUnchecked, String.class, String.class, "env")));
  }
  if (progressMessage != Runtime.NONE) {
    builder.setProgressMessageNonLazy((String) progressMessage);
  }
  if (EvalUtils.toBoolean(useDefaultShellEnv)) {
    builder.useDefaultShellEnvironment();
  }
  if (executionRequirementsUnchecked != Runtime.NONE) {
    builder.setExecutionInfo(
        ImmutableMap.copyOf(
            SkylarkDict.castSkylarkDictOrNoneToDict(
                executionRequirementsUnchecked,
                String.class,
                String.class,
                "execution_requirements")));
  }
  if (inputManifestsUnchecked != Runtime.NONE) {
    for (RunfilesSupplier supplier : SkylarkList.castSkylarkListOrNoneToList(
        inputManifestsUnchecked, RunfilesSupplier.class, "runfiles suppliers")) {
      builder.addRunfilesSupplier(supplier);
    }
  }
  // Always register the action
  ruleContext.registerAction(builder.build(ruleContext));
}
 
开发者ID:bazelbuild,项目名称:bazel,代码行数:69,代码来源:SkylarkActionFactory.java


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