com.google.common.collect.ImmutableList#sortedCopyOf ( )源码实例Demo

下面列出了com.google.common.collect.ImmutableList#sortedCopyOf ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。

源代码1 项目: onos   文件: CreateNullEntity.java
/**
 * Finds an available connect points among edge ports of the specified device.
 *
 * @param deviceId device identifier
 * @return list of connect points available for link or host attachments
 */
protected List<ConnectPoint> findAvailablePorts(DeviceId deviceId) {
    EdgePortService eps = get(EdgePortService.class);

    // As there may be a slight delay in edge service getting updated, retry a few times
    for (int i = 0; i < MAX_EDGE_PORT_TRIES; i++) {
        List<ConnectPoint> points = ImmutableList
                .sortedCopyOf((l, r) -> Longs.compare(l.port().toLong(), r.port().toLong()),
                              eps.getEdgePoints(deviceId));
        if (!points.isEmpty()) {
            return points;
        }
        Tools.delay(100);
    }
    return ImmutableList.of();
}
 
源代码2 项目: nomulus   文件: GenerateDnsReportCommand.java
private void write(DomainBase domain) {
  ImmutableList<String> nameservers =
      ImmutableList.sortedCopyOf(domain.loadNameserverHostNames());
  ImmutableList<Map<String, ?>> dsData =
      domain
          .getDsData()
          .stream()
          .map(
              dsData1 ->
                  ImmutableMap.of(
                      "keyTag", dsData1.getKeyTag(),
                      "algorithm", dsData1.getAlgorithm(),
                      "digestType", dsData1.getDigestType(),
                      "digest", base16().encode(dsData1.getDigest())))
          .collect(toImmutableList());
  ImmutableMap.Builder<String, Object> mapBuilder = new ImmutableMap.Builder<>();
  mapBuilder.put("domain", domain.getDomainName());
  if (!nameservers.isEmpty()) {
    mapBuilder.put("nameservers", nameservers);
  }
  if (!dsData.isEmpty()) {
    mapBuilder.put("dsData", dsData);
  }
  writeJson(mapBuilder.build());
}
 
源代码3 项目: buck   文件: ShTestIntegrationTest.java
@Test
public void resourcesAreMarkedAsInputs() throws IOException {
  Assume.assumeTrue(ImmutableSet.of(Platform.MACOS, Platform.LINUX).contains(Platform.detect()));
  ProjectWorkspace workspace =
      TestDataHelper.createProjectWorkspaceForScenario(this, "sh_test_resources", tmp);
  workspace.setUp();
  ProcessResult result = workspace.runBuckCommand("audit", "inputs", "//:test");
  result.assertSuccess();
  ImmutableList<String> lines =
      ImmutableList.sortedCopyOf(
          Comparator.naturalOrder(), Splitter.on("\n").split(result.getStdout().trim()));

  ImmutableList<String> expected =
      ImmutableList.of(
          "as_path/resource_file_as_path",
          "resources/BUCK",
          "resources/subdir/resource_file",
          "test.sh");
  Assert.assertEquals(expected, lines);
}
 
源代码4 项目: armeria   文件: DynamicEndpointGroup.java
/**
 * Sets the specified {@link Endpoint}s as current {@link Endpoint} list.
 */
protected final void setEndpoints(Iterable<Endpoint> endpoints) {
    final List<Endpoint> oldEndpoints = this.endpoints;
    final List<Endpoint> newEndpoints = ImmutableList.sortedCopyOf(endpoints);

    if (!hasChanges(oldEndpoints, newEndpoints)) {
        return;
    }

    endpointsLock.lock();
    try {
        this.endpoints = newEndpoints;
    } finally {
        endpointsLock.unlock();
    }

    notifyListeners(newEndpoints);
    completeInitialEndpointsFuture(newEndpoints);
}
 
源代码5 项目: startup-os   文件: FileUtils.java
/** Gets subfolder names in path. Throws IllegalStateException if path is not a folder. */
public ImmutableList<String> listSubfolders(String path) throws IOException {
  if (!folderExists(path)) {
    throw new IllegalStateException("Folder does not exist");
  }
  return ImmutableList.sortedCopyOf(
      listContents(path)
          .stream()
          .filter(x -> folderExists(joinPaths(path, x)))
          .collect(Collectors.toList()));
}
 
源代码6 项目: startup-os   文件: FileUtils.java
/**
 * Gets file and folder absolute paths recursively. Throws NoSuchFileException if directory
 * doesn't exist.
 */
public ImmutableList<String> listContentsRecursively(String path) throws IOException {
  try (Stream<Path> paths =
      Files.find(
          fileSystem.getPath(expandHomeDirectory(path)),
          100000, // Folder depth
          (unused, unused2) -> true)) {
    return ImmutableList.sortedCopyOf(paths.map(Path::toString).collect(Collectors.toList()));
  }
}
 
源代码7 项目: armeria   文件: DynamicEndpointGroup.java
/**
 * Adds the specified {@link Endpoint} to current {@link Endpoint} list.
 */
protected final void addEndpoint(Endpoint e) {
    final List<Endpoint> newEndpoints;
    endpointsLock.lock();
    try {
        final List<Endpoint> newEndpointsUnsorted = Lists.newArrayList(endpoints);
        newEndpointsUnsorted.add(e);
        endpoints = newEndpoints = ImmutableList.sortedCopyOf(newEndpointsUnsorted);
    } finally {
        endpointsLock.unlock();
    }

    notifyListeners(newEndpoints);
    completeInitialEndpointsFuture(newEndpoints);
}
 
源代码8 项目: bazel   文件: ResourceFilterFactory.java
/**
 * Extracts filters from an AttributeMap, as a list of strings.
 *
 * <p>In BUILD files, string lists can be represented as a list of strings, a single
 * comma-separated string, or a combination of both. This method outputs a single list of
 * individual string values, which can then be passed directly to resource processing actions.
 *
 * @return the values of this attribute contained in the {@link AttributeMap}, as a list.
 */
private static ImmutableList<String> extractFilters(List<String> rawValues) {
  if (rawValues.isEmpty()) {
    return ImmutableList.of();
  }

  /*
   * To deal with edge cases involving placement of whitespace and multiple strings inside a
   * single item of the given list, manually build the list here rather than call something like
   * {@link RuleContext#getTokenizedStringListAttr}.
   *
   * Filter out all empty values, even those that were explicitly provided. Paying attention to
   * empty values is never helpful: even if code handled them correctly (and not all of it does)
   * empty filter values result in all resources matching the empty filter, meaning that filtering
   * does nothing (even if non-empty filters were also provided).
   */

  // Use an ImmutableSet to remove duplicate values
  ImmutableSet.Builder<String> builder = ImmutableSet.builder();

  for (String rawValue : rawValues) {
    if (rawValue.contains(",")) {
      for (String token : rawValue.split(",")) {
        if (!token.trim().isEmpty()) {
          builder.add(token.trim());
        }
      }
    } else if (!rawValue.isEmpty()) {
      builder.add(rawValue);
    }
  }

  // Create a sorted copy so that ResourceFilterFactory objects with the same filters are treated
  // the same regardless of the ordering of those filters.
  return ImmutableList.sortedCopyOf(builder.build());
}
 
源代码9 项目: curiostack   文件: CodeGenUtil.java
/**
 * Returns the fields sorted in order of field number. By default, they are sorted in order of
 * definition in the proto file.
 */
static List<FieldDescriptor> sorted(List<FieldDescriptor> fields) {
  return ImmutableList.sortedCopyOf(
      new Comparator<FieldDescriptor>() {
        @Override
        public int compare(FieldDescriptor o1, FieldDescriptor o2) {
          return Integer.compare(o1.getNumber(), o2.getNumber());
        }
      },
      fields);
}
 
源代码10 项目: AACAdditionPro   文件: ViolationLevelManagement.java
/**
 * Create a new {@link ViolationLevelManagement}
 *
 * @param moduleType the {@link ModuleType} of the module this {@link ViolationLevelManagement} is being used by.
 * @param decayTicks the time in ticks until the vl of a player is decreased by one. If this is negative no decrease will happen.
 */
public ViolationLevelManagement(final ModuleType moduleType, final long decayTicks)
{
    // The ModuleType of the check
    this.moduleType = moduleType;

    ModuleType.VL_MODULETYPES.add(moduleType);

    this.violationLevels = new ViolationLevelMap(decayTicks);
    // Listener registration as of the PlayerQuitEvent
    AACAdditionPro.getInstance().registerListener(this.violationLevels);

    // Load the thresholds and sort them.
    switch (ServerVersion.getActiveServerVersion()) {
        case MC188:
            final List<Threshold> temp = Threshold.loadThresholds(moduleType.getConfigString() + ".thresholds");
            Collections.sort(temp);
            thresholds = ImmutableList.copyOf(temp);
            break;
        case MC112:
        case MC113:
        case MC114:
        case MC115:
            thresholds = ImmutableList.sortedCopyOf(Threshold.loadThresholds(moduleType.getConfigString() + ".thresholds"));
            break;
        default:
            throw new UnknownMinecraftVersion();
    }
}
 
private ImmutableSetMultimap<String, String> getRdapBaseUrlsPerIanaId() {
  // All TLDs have the same data, so just keep trying until one works
  // (the expectation is that all / any should work)
  ImmutableList<String> tlds = ImmutableList.sortedCopyOf(Registries.getTldsOfType(TldType.REAL));
  checkArgument(!tlds.isEmpty(), "There must exist at least one REAL TLD.");
  Throwable finalThrowable = null;
  for (String tld : tlds) {
    HttpRequestFactory requestFactory = httpTransport.createRequestFactory();
    String id;
    try {
      id = loginAndGetId(requestFactory, tld);
    } catch (Throwable e) {
      // Login failures are bad but not unexpected for certain TLDs. We shouldn't store those
      // but rather should only store useful Throwables.
      logger.atWarning().log("Error logging in to MoSAPI server: " + e.getMessage());
      continue;
    }
    try {
      return getRdapBaseUrlsPerIanaIdWithTld(tld, id, requestFactory);
    } catch (Throwable throwable) {
      logger.atWarning().log(
          String.format(
              "Error retrieving RDAP urls with TLD %s: %s", tld, throwable.getMessage()));
      finalThrowable = throwable;
    }
  }
  throw new RuntimeException(
      String.format("Error contacting MosAPI server. Tried TLDs %s", tlds), finalThrowable);
}
 
源代码12 项目: bazel   文件: ResultCollector.java
public ImmutableList<Path> getSortedIndirectDeps() {
  return ImmutableList.sortedCopyOf(indirectDeps);
}
 
源代码13 项目: bazel   文件: ResultCollector.java
public ImmutableList<MissingMember> getSortedMissingMembers() {
  return ImmutableList.sortedCopyOf(missingMembers);
}
 
源代码14 项目: startup-os   文件: AaTool.java
public ImmutableList<String> getCommands() {
  return ImmutableList.sortedCopyOf(commands.keySet());
}
 
源代码15 项目: bazel   文件: BuildLanguageInfoItem.java
/** Returns a byte array containing a proto-buffer describing the build language. */
private static byte[] getBuildLanguageDefinition(RuleClassProvider provider) {
  BuildLanguage.Builder resultPb = BuildLanguage.newBuilder();
  ImmutableList<RuleClass> sortedRuleClasses =
      ImmutableList.sortedCopyOf(
          Comparator.comparing(RuleClass::getName), provider.getRuleClassMap().values());
  for (RuleClass ruleClass : sortedRuleClasses) {
    if (isAbstractRule(ruleClass)) {
      continue;
    }

    RuleDefinition.Builder rulePb = RuleDefinition.newBuilder();
    rulePb.setName(ruleClass.getName());

    ImmutableList<Attribute> sortedAttributeDefinitions =
        ImmutableList.sortedCopyOf(
            Comparator.comparing(Attribute::getName), ruleClass.getAttributes());
    for (Attribute attr : sortedAttributeDefinitions) {
      Type<?> t = attr.getType();
      AttributeDefinition.Builder attrPb = AttributeDefinition.newBuilder();
      attrPb.setName(attr.getName());
      attrPb.setType(ProtoUtils.getDiscriminatorFromType(t));
      attrPb.setMandatory(attr.isMandatory());
      attrPb.setAllowEmpty(!attr.isNonEmpty());
      attrPb.setAllowSingleFile(attr.isSingleArtifact());
      attrPb.setConfigurable(attr.isConfigurable());
      attrPb.setCfgIsHost(attr.getTransitionFactory().isHost());

      // Encode default value, if simple.
      Object v = attr.getDefaultValueUnchecked();
      if (!(v == null
          || v instanceof Attribute.ComputedDefault
          || v instanceof StarlarkComputedDefaultTemplate
          || v instanceof Attribute.LateBoundDefault
          || v == t.getDefaultValue())) {
        attrPb.setDefault(convertAttrValue(t, v));
      }
      attrPb.setExecutable(attr.isExecutable());
      if (BuildType.isLabelType(t)) {
        attrPb.setAllowedRuleClasses(getAllowedRuleClasses(sortedRuleClasses, attr));
        attrPb.setNodep(t.getLabelClass() == Type.LabelClass.NONDEP_REFERENCE);
      }
      rulePb.addAttribute(attrPb);
    }

    resultPb.addRule(rulePb);
  }

  return resultPb.build().toByteArray();
}
 
源代码16 项目: buck   文件: StackedFileHashCache.java
public StackedFileHashCache(ImmutableList<? extends ProjectFileHashCache> caches) {
  this.caches = ImmutableList.sortedCopyOf(new FileHashCacheComparator(), caches);
}
 
源代码17 项目: bazel   文件: BuildOptions.java
private static OptionsDiffForReconstruction createDiffForReconstruction(
    BuildOptions first, BuildOptions second) {
  OptionsDiff diff = diff(first, second);
  if (diff.areSame()) {
    first.maybeInitializeFingerprintAndHashCode();
    return OptionsDiffForReconstruction.getEmpty(first.fingerprint, second.computeChecksum());
  }
  LinkedHashMap<Class<? extends FragmentOptions>, Map<String, Object>> differingOptions =
      new LinkedHashMap<>(diff.differingOptions.keySet().size());
  for (Class<? extends FragmentOptions> clazz :
      diff.differingOptions.keySet().stream()
          .sorted(lexicalFragmentOptionsComparator)
          .collect(Collectors.toList())) {
    Collection<OptionDefinition> fields = diff.differingOptions.get(clazz);
    LinkedHashMap<String, Object> valueMap = new LinkedHashMap<>(fields.size());
    for (OptionDefinition optionDefinition :
        fields.stream()
            .sorted(Comparator.comparing(o -> o.getField().getName()))
            .collect(Collectors.toList())) {
      Object secondValue;
      try {
        secondValue = Iterables.getOnlyElement(diff.second.get(optionDefinition));
      } catch (IllegalArgumentException e) {
        // TODO(janakr): Currently this exception should never be thrown since diff is never
        // constructed using the diff method that takes in a preexisting OptionsDiff. If this
        // changes, add a test verifying this error catching works properly.
        throw new IllegalStateException(
            "OptionsDiffForReconstruction can only handle a single first BuildOptions and a "
                + "single second BuildOptions and has encountered multiple second BuildOptions",
            e);
      }
      valueMap.put(optionDefinition.getField().getName(), secondValue);
    }
    differingOptions.put(clazz, valueMap);
  }
  first.maybeInitializeFingerprintAndHashCode();
  return new OptionsDiffForReconstruction(
      differingOptions,
      diff.extraFirstFragments.stream()
          .sorted(lexicalFragmentOptionsComparator)
          .collect(ImmutableSet.toImmutableSet()),
      ImmutableList.sortedCopyOf(
          Comparator.comparing(o -> o.getClass().getName()), diff.extraSecondFragments),
      first.fingerprint,
      second.computeChecksum(),
      diff.starlarkSecond,
      diff.extraStarlarkOptionsFirst,
      diff.extraStarlarkOptionsSecond,
      second);
}
 
源代码18 项目: intellij   文件: BlazeTypeScriptConfigTest.java
@Test
public void testDifferentOptions() {
  TypeScriptConfig blazeConfig = blazeConfigService.getConfigs().get(0);
  assertThat(blazeConfig.getBaseUrl()).isEqualTo(vf("/src/out/execroot/bin/project/foo"));
  assertThat(blazeConfig.getDependencies())
      .containsExactly(vf("/src/out/execroot/bin/project/foo/tsconfig_editor.json"));

  ImmutableList<JSModulePathSubstitution> paths =
      ImmutableList.sortedCopyOf(
          Comparator.comparing(JSModulePathSubstitution::getMappedName), blazeConfig.getPaths());
  assertThat(paths).hasSize(2);
  JSModulePathSubstitution projectPath = paths.get(0);
  assertThat(projectPath.getMappedName()).isEqualTo("workspace");
  assertThat(projectPath.getMappings())
      .containsExactly(
          "../../../../../workspace/*",
          "../../../../../workspace/blaze-bin/*",
          "../../../../../workspace/blaze-genfiles/*",
          "../../*",
          "../../../genfiles/*",
          "./tsconfig.runfiles/workspace/*")
      .inOrder();

  JSModulePathSubstitution projectFooPath = paths.get(1);
  assertThat(projectFooPath.getMappedName()).isEqualTo("workspace/project/foo");
  assertThat(projectFooPath.getMappings())
      .containsExactly(
          "../../../../../workspace/project/foo/*",
          "../../../../../workspace/blaze-bin/project/foo/*",
          "../../../../../workspace/blaze-genfiles/project/foo/*",
          "../../project/foo/*",
          "../../../genfiles/project/foo/*",
          "./tsconfig.runfiles/workspace/project/foo/*")
      .inOrder();

  assertThat(ReadAction.compute(blazeConfig::getRootDirsFiles))
      .containsExactly(
          vf("/src/workspace/project/foo"),
          vf("/src/out/execroot/bin/project/foo/tsconfig.runfiles/workspace"),
          vf("/src/out/execroot/bin/project/foo/tsconfig.runfiles/workspace/project/foo"));
  assertThat(ReadAction.compute(blazeConfig::getRootDirs))
      .containsExactly(
          psi("/src/workspace/project/foo"),
          psi("/src/out/execroot/bin/project/foo/tsconfig.runfiles/workspace"),
          psi("/src/out/execroot/bin/project/foo/tsconfig.runfiles/workspace/project/foo"));
}
 
源代码19 项目: bazel   文件: StarlarkProvider.java
/**
 * Creates an exported {@link StarlarkProvider} with no schema.
 *
 * @param key the key that identifies this provider
 * @param schema the allowed field names for instances of this provider
 * @param location the location of the Starlark definition for this provider (tests may use {@link
 *     Location#BUILTIN})
 */
// TODO(adonovan): in what sense is this "schemaful" if schema may be null?
public static StarlarkProvider createExportedSchemaful(
    Key key, @Nullable Collection<String> schema, Location location) {
  return new StarlarkProvider(
      key, schema == null ? null : ImmutableList.sortedCopyOf(schema), location);
}
 
源代码20 项目: bazel   文件: StarlarkProvider.java
/**
 * Creates an unexported {@link StarlarkProvider} with a schema.
 *
 * <p>The resulting object needs to be exported later (via {@link #export}).
 *
 * @param schema the allowed field names for instances of this provider
 * @param location the location of the Starlark definition for this provider (tests may use {@link
 *     Location#BUILTIN})
 */
// TODO(adonovan): in what sense is this "schemaful" if schema may be null?
public static StarlarkProvider createUnexportedSchemaful(
    @Nullable Collection<String> schema, Location location) {
  return new StarlarkProvider(
      /*key=*/ null, schema == null ? null : ImmutableList.sortedCopyOf(schema), location);
}