com.google.common.collect.ImmutableMultimap.Builder Java Examples

The following examples show how to use com.google.common.collect.ImmutableMultimap.Builder. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: SmartDexingStep.java    From buck with Apache License 2.0 6 votes vote down vote up
private void buildInternal(ImmutableList.Builder<Step> steps) {
  Preconditions.checkState(newInputsHash != null, "Must call checkIsCached first!");

  createDxStepForDxPseudoRule(
      androidPlatformTarget,
      steps,
      buildContext,
      filesystem,
      srcs,
      outputPath,
      dxOptions,
      xzCompressionLevel,
      dxMaxHeapSize,
      dexTool,
      classpathFiles,
      useDexBuckedId,
      minSdkVersion);
  steps.add(
      new WriteFileStep(filesystem, newInputsHash, outputHashPath, /* executable */ false));
}
 
Example #2
Source File: AbstractSegmentStoreTableViewer.java    From tracecompass with Eclipse Public License 2.0 5 votes vote down vote up
private static Predicate<@NonNull Map<@NonNull String, @NonNull Object>> multiToMapPredicate(Predicate<@NonNull Multimap<@NonNull String, @NonNull Object>> predicate) {
    return map -> {
        Builder<@NonNull String, @NonNull Object> builder = ImmutableMultimap.builder();
        map.forEach((key, value) -> builder.put(key, value));
        return predicate.test(Objects.requireNonNull(builder.build()));
    };
}
 
Example #3
Source File: TableDataBuilder.java    From HiveRunner with Apache License 2.0 5 votes vote down vote up
private Map<String, String> createPartitionSpec() {
  ImmutableMap.Builder<String, String> builder = ImmutableMap.builder();
  for (HCatFieldSchema partitionColumn : partitionColumns) {
    String name = partitionColumn.getName();
    Object value = get(name);
    checkState(value != null, "Value for partition column %s must not be null.", name);
    builder.put(name, value.toString());
  }
  return builder.build();
}
 
Example #4
Source File: SmartDexingStep.java    From buck with Apache License 2.0 5 votes vote down vote up
private ImmutableMultimap<Path, Path> createXzsOutputsToInputs(
    Multimap<Path, Path> outputToInputs) {
  // Concatenate if solid compression is specified.
  // create a mapping of the xzs file target and the dex.jar files that go into it
  ImmutableMultimap.Builder<Path, Path> xzsMultimapBuilder = ImmutableMultimap.builder();
  for (Path p : outputToInputs.keySet()) {
    if (DexStore.XZS.matchesPath(p)) {
      String[] matches = p.getFileName().toString().split("-");
      Path output = p.getParent().resolve(matches[0].concat(SECONDARY_SOLID_DEX_EXTENSION));
      xzsMultimapBuilder.put(output, p);
    }
  }
  return xzsMultimapBuilder.build();
}
 
Example #5
Source File: SmartDexingStep.java    From buck with Apache License 2.0 5 votes vote down vote up
/**
 * Once the {@code .class} files have been split into separate zip files, each must be converted
 * to a {@code .dex} file.
 */
private Stream<ImmutableList<Step>> generateDxCommands(
    ProjectFilesystem filesystem, Multimap<Path, Path> outputToInputs) {

  ImmutableMap<Path, Sha1HashCode> dexInputHashes = dexInputHashesProvider.getDexInputHashes();
  ImmutableSet<Path> allDexInputPaths = ImmutableSet.copyOf(outputToInputs.values());

  return outputToInputs.asMap().entrySet().stream()
      .map(
          outputInputsPair ->
              new DxPseudoRule(
                  androidPlatformTarget,
                  buildContext,
                  filesystem,
                  dexInputHashes,
                  ImmutableSet.copyOf(outputInputsPair.getValue()),
                  outputInputsPair.getKey(),
                  successDir.resolve(outputInputsPair.getKey().getFileName()),
                  dxOptions,
                  xzCompressionLevel,
                  dxMaxHeapSize,
                  dexTool,
                  desugarInterfaceMethods
                      ? Sets.union(
                          Sets.difference(
                              allDexInputPaths, ImmutableSet.copyOf(outputInputsPair.getValue())),
                          additonalDesugarDeps.orElse(ImmutableSet.of()))
                      : null,
                  useDexBuckedId,
                  minSdkVersion))
      .filter(dxPseudoRule -> !dxPseudoRule.checkIsCached())
      .map(
          dxPseudoRule -> {
            ImmutableList.Builder<Step> steps = ImmutableList.builder();
            dxPseudoRule.buildInternal(steps);
            return steps.build();
          });
}
 
Example #6
Source File: Converters.java    From metanome-algorithms with Apache License 2.0 4 votes vote down vote up
public static <K, V> Map<K, V> toMap(Collection<Entry<K, V>> value) {
	ImmutableMap.Builder<K, V> builder = ImmutableMap.builder();
	value.stream().map(Entry::toEntry).forEach(builder::put);
	return builder.build();
}
 
Example #7
Source File: Converters.java    From metanome-algorithms with Apache License 2.0 4 votes vote down vote up
public static <K, V> Multimap<K, V> toMultimap(Collection<Entry<K, V>> value) {
	Builder<K, V> builder = ImmutableMultimap.builder();
	value.stream().map(Entry::toEntry).forEach(builder::put);
	return builder.build();
}
 
Example #8
Source File: SmartDexingStep.java    From buck with Apache License 2.0 4 votes vote down vote up
/**
 * @param primaryOutputPath Path for the primary dex artifact.
 * @param primaryInputsToDex Set of paths to include as inputs for the primary dex artifact.
 * @param secondaryOutputDir Directory path for the secondary dex artifacts, if there are any.
 *     Note that this directory will be pruned such that only those secondary outputs generated by
 *     this command will remain in the directory!
 * @param secondaryInputsToDex List of paths to input jar files, to use as dx input, keyed by the
 *     corresponding output dex file. Note that for each output file (key), a separate dx
 *     invocation will be started with the corresponding jar files (value) as the input.
 * @param successDir Directory where success artifacts are written.
 * @param executorService The thread pool to execute the dx command on.
 * @param minSdkVersion
 */
public SmartDexingStep(
    AndroidPlatformTarget androidPlatformTarget,
    BuildContext buildContext,
    ProjectFilesystem filesystem,
    Optional<Path> primaryOutputPath,
    Optional<Supplier<Set<Path>>> primaryInputsToDex,
    Optional<Supplier<List<String>>> primaryDexWeightsSupplier,
    Optional<Path> secondaryOutputDir,
    Optional<Supplier<Multimap<Path, Path>>> secondaryInputsToDex,
    DexInputHashesProvider dexInputHashesProvider,
    Path successDir,
    EnumSet<Option> dxOptions,
    ListeningExecutorService executorService,
    int xzCompressionLevel,
    Optional<String> dxMaxHeapSize,
    String dexTool,
    boolean desugarInterfaceMethods,
    boolean useDexBuckedId,
    Optional<Set<Path>> additonalDesugarDeps,
    BuildTarget buildTarget,
    Optional<Integer> minSdkVersion) {
  this.androidPlatformTarget = androidPlatformTarget;
  this.buildContext = buildContext;
  this.filesystem = filesystem;
  this.desugarInterfaceMethods = desugarInterfaceMethods;
  this.outputToInputsSupplier =
      MoreSuppliers.memoize(
          () -> {
            Builder<Path, Path> map = ImmutableMultimap.builder();
            if (primaryInputsToDex.isPresent()) {
              map.putAll(primaryOutputPath.get(), primaryInputsToDex.get().get());
            }
            if (secondaryInputsToDex.isPresent()) {
              map.putAll(secondaryInputsToDex.get().get());
            }
            return map.build();
          });
  this.primaryDexWeightsSupplier = primaryDexWeightsSupplier;
  this.secondaryOutputDir = secondaryOutputDir;
  this.dexInputHashesProvider = dexInputHashesProvider;
  this.successDir = successDir;
  this.dxOptions = dxOptions;
  this.executorService = executorService;
  this.xzCompressionLevel = xzCompressionLevel;
  this.dxMaxHeapSize = dxMaxHeapSize;
  this.dexTool = dexTool;
  this.useDexBuckedId = useDexBuckedId;
  this.additonalDesugarDeps = additonalDesugarDeps;
  this.buildTarget = buildTarget;
  this.minSdkVersion = minSdkVersion;
}