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

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

Introduction

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

Prototype

public static <E extends Comparable<?>> Builder<E> naturalOrder() 

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);/*w  w w .  j  a  v  a  2  s .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: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));
        }/*from  w w w.j av a 2s. c om*/
        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));
        }// w  ww  .  ja  va  2 s . co  m
        builder.add(propertySpec);
    }
    return builder.build();
}

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 ww w  .  ja  v  a  2 s .  co  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 {/*from  w  ww  .  j  ava 2  s.  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.facebook.buck.query.QueryTargetAccessor.java

public static <T> ImmutableSet<QueryTarget> getTargetsInAttribute(TargetNode<T, ?> node, String attribute) {
    try {/*from   ww  w.j av a  2  s. c  o  m*/
        final ImmutableSet.Builder<QueryTarget> builder = ImmutableSortedSet.naturalOrder();
        Class<?> constructorArgClass = node.getConstructorArg().getClass();
        Field field = constructorArgClass.getField(attribute);
        ParamInfo info = new ParamInfo(typeCoercerFactory, constructorArgClass, field);
        info.traverse(value -> {
            if (value instanceof Path) {
                builder.add(QueryFileTarget.of((Path) value));
            } else if (value instanceof SourcePath) {
                builder.add(extractSourcePath((SourcePath) value));
            } else if (value instanceof HasBuildTarget) {
                builder.add(extractBuildTargetContainer((HasBuildTarget) value));
            }
        }, node.getConstructorArg());
        return builder.build();
    } catch (NoSuchFieldException e) {
        // Ignore if the field does not exist in this rule.
        return ImmutableSet.of();
    }
}

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/*from   w w w.j  a  v a2 s  .  c o m*/
        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  w ww. j  a v  a2  s  .  c om
            throw new HumanReadableException("No rule for %s found when processing %s", target,
                    invokingBuildTarget.getFullyQualifiedName());
        }
    }

    return buildRules.build();
}

From source file:com.facebook.buck.cli.QueryTargetAccessor.java

public static <T extends AbstractDescriptionArg> ImmutableSet<QueryTarget> getTargetsInAttribute(
        TargetNode<T> node, String attribute) throws QueryException {
    try {//from ww  w  .  j a va2s.c o  m
        final ImmutableSet.Builder<QueryTarget> builder = ImmutableSortedSet.naturalOrder();
        Field field = node.getConstructorArg().getClass().getField(attribute);
        ParamInfo<T> info = new ParamInfo<>(typeCoercerFactory, field);
        info.traverse(new ParamInfo.Traversal() {
            @Override
            public void traverse(Object value) {
                if (value instanceof Path) {
                    builder.add(QueryFileTarget.of((Path) value));
                } else if (value instanceof SourcePath) {
                    builder.add(extractSourcePath((SourcePath) value));
                } else if (value instanceof HasBuildTarget) {
                    builder.add(extractBuildTargetContainer((HasBuildTarget) value));
                }
            }
        }, node.getConstructorArg());
        return builder.build();
    } catch (NoSuchFieldException e) {
        // Ignore if the field does not exist in this rule.
        return ImmutableSet.of();
    }
}

From source file:google.registry.monitoring.metrics.LinearFitter.java

/**
 * Create a new {@link LinearFitter}./*from  w  w  w . j  a v a  2  s . c om*/
 *
 * @param numFiniteIntervals the number of intervals, excluding the underflow and overflow
 *     intervals
 * @param width the width of each interval
 * @param offset the start value of the first interval
 * @throws IllegalArgumentException if {@code numFiniteIntervals <= 0} or {@code width <= 0}
 */
public static LinearFitter create(int numFiniteIntervals, double width, double offset) {
    checkArgument(numFiniteIntervals > 0, "numFiniteIntervals must be greater than 0");
    checkArgument(width > 0, "width must be greater than 0");
    checkDouble(offset);

    ImmutableSortedSet.Builder<Double> boundaries = ImmutableSortedSet.naturalOrder();

    for (int i = 0; i < numFiniteIntervals + 1; i++) {
        boundaries.add(width * i + offset);
    }

    return new AutoValue_LinearFitter(width, offset, boundaries.build());
}