Example usage for com.google.common.collect ImmutableSortedSet builder

List of usage examples for com.google.common.collect ImmutableSortedSet builder

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableSortedSet builder.

Prototype

@Deprecated
    public static <E> ImmutableSortedSet.Builder<E> builder() 

Source Link

Usage

From source file:com.facebook.buck.rules.BuildRules.java

public static ImmutableSortedSet<BuildRule> toBuildRulesFor(BuildTarget invokingBuildTarget,
        BuildRuleResolver ruleResolver, Iterable<BuildTarget> buildTargets, boolean allowNonExistentRule) {
    ImmutableSortedSet.Builder<BuildRule> buildRules = ImmutableSortedSet.naturalOrder();

    for (BuildTarget target : buildTargets) {
        BuildRule buildRule = ruleResolver.get(target);
        if (buildRule != null) {
            buildRules.add(buildRule);/*from  ww  w.j a v  a 2s .c  o m*/
        } else if (!allowNonExistentRule) {
            throw new HumanReadableException("No rule for %s found when processing %s", target,
                    invokingBuildTarget.getFullyQualifiedName());
        }
    }

    return buildRules.build();
}

From source file:com.codingopus.guava.custom.collectors.ImmutableSortedSetCollector.java

/**
  * @returns a {@link Collector} that collects data in
  * {@link ImmutableSortedSet} whose elements are
  * ordered by their natural ordering.//from  w w w .  ja  va  2  s .co m
  *
  * @param <T> The type of input elements for the new 
  * collector.
  * */
public static <T extends Comparable<?>> Collector<T, ImmutableSortedSet.Builder<T>, ImmutableSortedSet<T>> toImmutableSortedSetCollector() {
    return Collector.of(ImmutableSortedSet::naturalOrder, (c, v) -> c.add(v), (c1, c2) -> c1.addAll(c2.build()),
            ImmutableSortedSet.Builder<T>::build);
}

From source file:org.gradle.api.internal.tasks.properties.TaskPropertyUtils.java

public static <T extends TaskFilePropertySpec> SortedSet<T> collectFileProperties(String displayName,
        Iterable<? extends T> fileProperties) {
    Set<String> names = Sets.newHashSet();
    ImmutableSortedSet.Builder<T> builder = ImmutableSortedSet.naturalOrder();
    for (T propertySpec : fileProperties) {
        String propertyName = propertySpec.getPropertyName();
        if (!names.add(propertyName)) {
            throw new IllegalArgumentException(
                    String.format("Multiple %s file properties with name '%s'", displayName, propertyName));
        }//  ww w.ja  v a2 s  . c  o  m
        builder.add(propertySpec);
    }
    return builder.build();
}

From source file:org.gradle.api.internal.tasks.TaskPropertyUtils.java

public static <T extends TaskFilePropertySpec> SortedSet<T> collectFileProperties(String displayName,
        Iterator<? extends T> fileProperties) {
    Set<String> names = Sets.newHashSet();
    ImmutableSortedSet.Builder<T> builder = ImmutableSortedSet.naturalOrder();
    while (fileProperties.hasNext()) {
        T propertySpec = fileProperties.next();
        String propertyName = propertySpec.getPropertyName();
        if (!names.add(propertyName)) {
            throw new IllegalArgumentException(
                    String.format("Multiple %s file properties with name '%s'", displayName, propertyName));
        }//from   w w w  .  j av  a  2 s  .  c o  m
        builder.add(propertySpec);
    }
    return builder.build();
}

From source file:com.facebook.buck.rules.Buildables.java

/**
 * Helper function for {@link Buildable}s to create their lists of files for caching.
 *//*from   w  w w  . j av  a  2  s  .c om*/
public static void addInputsToSortedSet(@Nullable Path pathToDirectory,
        ImmutableSortedSet.Builder<Path> inputsToConsiderForCachingPurposes, DirectoryTraverser traverser) {
    if (pathToDirectory == null) {
        return;
    }

    Set<Path> files;
    try {
        files = DirectoryTraversers.getInstance().findFiles(pathToDirectory.toString(), traverser);
    } catch (IOException e) {
        throw new RuntimeException("Exception while traversing " + pathToDirectory + ".", e);
    }

    inputsToConsiderForCachingPurposes.addAll(files);
}

From source file:com.facebook.buck.swift.SwiftDescriptions.java

static ImmutableSortedSet<SourcePath> filterSwiftSources(SourcePathResolver sourcePathResolver,
        ImmutableSet<SourceWithFlags> srcs) {
    ImmutableSortedSet.Builder<SourcePath> swiftSrcsBuilder = ImmutableSortedSet.naturalOrder();
    for (SourceWithFlags source : srcs) {
        if (MorePaths.getFileExtension(sourcePathResolver.getAbsolutePath(source.getSourcePath()))
                .equalsIgnoreCase(SWIFT_EXTENSION)) {
            swiftSrcsBuilder.add(source.getSourcePath());
        }/*from   w  w  w. ja  v a  2  s  .  c  o  m*/
    }
    return swiftSrcsBuilder.build();
}

From source file:com.facebook.buck.android.NoDxArgsHelper.java

static ImmutableSortedSet<JavaLibrary> findRulesToExcludeFromDex(ActionGraphBuilder graphBuilder,
        BuildTarget buildTarget, ImmutableSet<BuildTarget> noDxTargets) {
    // Build rules added to "no_dx" are only hints, not hard dependencies. Therefore, although a
    // target may be mentioned in that parameter, it may not be present as a build rule.
    ImmutableSortedSet.Builder<BuildRule> builder = ImmutableSortedSet.naturalOrder();
    for (BuildTarget noDxTarget : noDxTargets) {
        Optional<BuildRule> ruleOptional = graphBuilder.getRuleOptional(noDxTarget);
        if (ruleOptional.isPresent()) {
            builder.add(ruleOptional.get());
        } else {/* w w  w .  j ava  2s. c  o m*/
            LOG.info("%s: no_dx target not a dependency: %s", buildTarget, noDxTarget);
        }
    }

    ImmutableSortedSet<BuildRule> buildRulesToExcludeFromDex = builder.build();
    return RichStream.from(buildRulesToExcludeFromDex).filter(JavaLibrary.class)
            .collect(ImmutableSortedSet.toImmutableSortedSet(Ordering.natural()));
}

From source file:com.codingopus.guava.custom.collectors.ImmutableSortedSetCollector.java

/**
  * @returns a {@link Collector} that collects data in
  * {@link ImmutableSortedSet} whose elements are
  * ordered by reverse of the their natural ordering.
  *//from  w  w w . jav a  2  s. c  om
  * @param <T> The type of input elements for the new 
  * collector.
  * */
public static <T extends Comparable<?>> Collector<T, ImmutableSortedSet.Builder<T>, ImmutableSortedSet<T>> toReverseImmutableSortedSetCollector() {
    return Collector.of(ImmutableSortedSet::reverseOrder, (c, v) -> c.add(v), (c1, c2) -> c1.addAll(c2.build()),
            ImmutableSortedSet.Builder<T>::build);
}

From source file:com.facebook.buck.rust.RustLinkables.java

static ImmutableSortedSet<Path> getDependencyPaths(BuildRule rule) {
    final ImmutableSortedSet.Builder<Path> builder = ImmutableSortedSet.naturalOrder();

    new AbstractBreadthFirstTraversal<BuildRule>(ImmutableSet.of(rule)) {
        @Override//w w w  .  j  a v  a2s .com
        public ImmutableSet<BuildRule> visit(BuildRule rule) {
            if (rule instanceof RustLinkable) {
                RustLinkable linkable = (RustLinkable) rule;
                builder.add(linkable.getLinkPath().getParent());
                return rule.getDeps();
            } else {
                return ImmutableSet.of();
            }
        }
    }.start();

    return builder.build();
}

From source file:com.facebook.buck.core.rules.common.BuildRules.java

public static ImmutableSortedSet<BuildRule> toBuildRulesFor(BuildTarget invokingBuildTarget,
        BuildRuleResolver ruleResolver, Iterable<BuildTarget> buildTargets) {
    ImmutableSortedSet.Builder<BuildRule> buildRules = ImmutableSortedSet.naturalOrder();

    for (BuildTarget target : buildTargets) {
        Optional<BuildRule> buildRule = ruleResolver.getRuleOptional(target);
        if (buildRule.isPresent()) {
            buildRules.add(buildRule.get());
        } else {//from   ww w.j av a2s.c  om
            throw new HumanReadableException("No rule for %s found when processing %s", target,
                    invokingBuildTarget.getFullyQualifiedName());
        }
    }

    return buildRules.build();
}