List of usage examples for com.google.common.collect ImmutableSortedSet naturalOrder
public static <E extends Comparable<?>> Builder<E> naturalOrder()
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()); }