com.google.common.collect.Iterables#indexOf ( )源码实例Demo

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

/**
 * Create a {@link TimestampedHiveDatasetVersion} from a {@link Partition}. The hive table is expected
 * to be date partitioned by {@link #partitionKeyName}. The partition value format must be {@link #pattern}
 *
 * @throws IllegalArgumentException when {@link #partitionKeyName} is not found in the <code></code>
 * @throws IllegalArgumentException when a value can not be found for {@link #partitionKeyName} in the <code>partition</code>
 * @throws IllegalArgumentException if the partition value can not be parsed with {@link #pattern}
 * {@inheritDoc}
 */
@Override
protected TimestampedHiveDatasetVersion getDatasetVersion(Partition partition) {

  int index = Iterables.indexOf(partition.getTable().getPartitionKeys(), this.partitionKeyNamePredicate);

  if (index == -1) {
    throw new IllegalArgumentException(String
        .format("Failed to find partition key %s in the table %s", this.partitionKeyName,
            partition.getTable().getCompleteName()));
  }

  if (index >= partition.getValues().size()) {
    throw new IllegalArgumentException(String
        .format("Failed to find partition value for key %s in the partition %s", this.partitionKeyName,
            partition.getName()));
  }
  return new TimestampedHiveDatasetVersion(
      this.formatter.parseDateTime(partition.getValues().get(index).trim().substring(0, this.pattern.length())),
      partition);
}
 
源代码2 项目: buck   文件: BuildPaths.java
/**
 * Removes the hash from the buck-out path. Used temporarily to create links.
 *
 * @param path Hashed buck-out path
 * @param target Build target that generated {@code path}
 * @return A path without the hash directory or {@code Optional.empty()} if the hash was not
 *     found.
 */
// TODO(gabrielrc): Remove this once we removed all hardcoded buck paths.
public static Optional<Path> removeHashFrom(Path path, BuildTarget target) {
  String hash = TargetConfigurationHasher.hash(target.getTargetConfiguration());
  int index = Iterables.indexOf(path, p -> p.endsWith(hash));
  if (index == -1) { // hash not found
    return Optional.empty();
  }
  Path pathWithoutHash =
      path.subpath(0, index).resolve(path.subpath(index + 1, path.getNameCount()));
  if (path.isAbsolute()) {
    // Path.subpath(0, n) doesn't include the root
    return Optional.of(path.getRoot().resolve(pathWithoutHash));
  }
  return Optional.of(pathWithoutHash);
}
 
源代码3 项目: j2cl   文件: IntegrationTestBase.java
protected List<String> runTest(String testName) throws Exception {
  File executable = getTestDataFile(testName + testMode.postfix);
  assertTrue("Missing the test in classpath", executable.exists());
  List<String> logs = runTestBinary(executable.getAbsolutePath());

  // Cleanup log message for jsunit until "Start" log.
  if (testMode.isJ2cl()) {
    int startIndex = Iterables.indexOf(logs, x -> x.endsWith("  Start"));
    logs = logs.subList(startIndex, logs.size());
  }

  return logs;
}
 
源代码4 项目: cuba   文件: TreeModelAdapter.java
@Override
public int getIndexOfChild(Object parent, Object child) {
    if (parent == null || child == null)
        return -1;

    Collection<Object> childrenIds;
    if (parent == rootNode) {
        childrenIds = datasource.getRootItemIds();
    } else {
        Entity entity = ((Node) parent).getEntity();
        childrenIds = datasource.getChildren(entity.getId());
    }
    final Entity childEntity = ((Node) child).getEntity();
    return Iterables.indexOf(childrenIds, id -> childEntity.getId().equals(id));
}
 
源代码5 项目: flashback   文件: SceneAccessLayer.java
/**
 * find matched request from scene
 * @param request incoming request that we'd like match in existing scene
 * @return position of list of HttpExchanges from the scene. return -1 if no match found
 *
 * */
private int findMatchRequest(final RecordedHttpRequest request) {
  if (_scene.isSequential()) {
    List<RecordedHttpExchange> exchangeList = _scene.getRecordedHttpExchangeList();
    // In sequential playback mode, only test the request at the current sequence index
    if (_sequencePosition < exchangeList.size() && _matchRule
        .test(request, exchangeList.get(_sequencePosition).getRecordedHttpRequest())) {
      return _sequencePosition;
    }
    return -1;
  } else {
    return Iterables.indexOf(_scene.getRecordedHttpExchangeList(),
        input -> _matchRule.test(request, input.getRecordedHttpRequest()));
  }
}
 
源代码6 项目: notification   文件: NotificationStore.java
/**
 * Returns the index in notifications that matches the given ID or is the parent of a child
 * notification, or -1 if the notification was not found.
 *
 * @param notifications Notifications to search through
 * @param id Notification ID to find
 * @return the position of the notification or -1 if not found
 */
public static int indexOf(final Iterable<Notification> notifications, final String id) {

  Objects.requireNonNull(notifications, "notifications == null");

  if (Strings.isNullOrEmpty(id)) {
    return -1;
  }

  return Iterables.indexOf(
      notifications,
      notification -> {
        // first check that the ID matches
        final Optional<String> notificationId = notification.getId();
        if (!notificationId.isPresent()) {
          return false;
        } else if (id.equals(notificationId.get())) {
          return true;
        }

        // then check to see if the notification is included in any rolled up notifications
        final Collection<Notification> children = notification.getNotifications();
        if (children.isEmpty()) {
          return false;
        }
        return indexOf(children, id) != -1;
      });
}
 
源代码7 项目: bgpcep   文件: IdentifierUtils.java
private static YangInstanceIdentifier firstIdentifierOf(final YangInstanceIdentifier id,
        final Predicate<PathArgument> match) {
    final int idx = Iterables.indexOf(id.getPathArguments(), match);
    Preconditions.checkArgument(idx != -1, "Failed to find %s in %s", match, id);
    // we want the element at index idx to be included in the list
    return YangInstanceIdentifier.create(Iterables.limit(id.getPathArguments(), idx + 1));
}
 
源代码8 项目: bazel   文件: ArtifactFunctionTest.java
private TreeFileArtifact createFakeExpansionTreeFileArtifact(
    ActionTemplate<?> actionTemplate, String parentRelativePath, String content)
    throws Exception {
  int actionIndex = Iterables.indexOf(actions, actionTemplate::equals);
  Preconditions.checkState(actionIndex >= 0, "%s not registered", actionTemplate);
  TreeFileArtifact treeFileArtifact =
      TreeFileArtifact.createTemplateExpansionOutput(
          actionTemplate.getOutputTreeArtifact(),
          parentRelativePath,
          ActionTemplateExpansionValue.key(ALL_OWNER, actionIndex));
  Path path = treeFileArtifact.getPath();
  path.getParentDirectory().createDirectoryAndParents();
  writeFile(path, content);
  return treeFileArtifact;
}
 
源代码9 项目: xsemantics   文件: FjTypeSystem.java
protected Result<Expression> applyRuleRNew(final RuleEnvironment G, final RuleApplicationTrace _trace_, final New exp) throws RuleFailedException {
  New exp1 = null; // output parameter
  exp1 = this.<New>clone(exp);
  final Predicate<Expression> _function = new Predicate<Expression>() {
    public boolean apply(final Expression it) {
      Boolean _isValue = FjTypeSystem.this.isValueInternal(_trace_, it);
      return (!(_isValue).booleanValue());
    }
  };
  final int indexOfNextToReduce = Iterables.<Expression>indexOf(exp1.getArgs(), _function);
  /* { indexOfNextToReduce < 0 } or { val nextToReduce = exp1.args.get(indexOfNextToReduce) G |- nextToReduce ~> var Expression expi exp1.args.set(indexOfNextToReduce, expi) } */
  {
    RuleFailedException previousFailure = null;
    try {
      /* indexOfNextToReduce < 0 */
      if (!(indexOfNextToReduce < 0)) {
        sneakyThrowRuleFailedException("indexOfNextToReduce < 0");
      }
    } catch (Exception e) {
      previousFailure = extractRuleFailedException(e);
      final Expression nextToReduce = exp1.getArgs().get(indexOfNextToReduce);
      /* G |- nextToReduce ~> var Expression expi */
      Expression expi = null;
      Result<Expression> result = reduceInternal(G, _trace_, nextToReduce);
      checkAssignableTo(result.getFirst(), Expression.class);
      expi = (Expression) result.getFirst();
      
      exp1.getArgs().set(indexOfNextToReduce, expi);
    }
  }
  return new Result<Expression>(exp1);
}
 
源代码10 项目: cuba   文件: DesktopWindow.java
@Override
public int indexOf(Component component) {
    return Iterables.indexOf(ownComponents, c -> c == component);
}
 
源代码11 项目: cuba   文件: DesktopScrollBoxLayout.java
@Override
public int indexOf(Component child) {
    return Iterables.indexOf(components, c -> c == child);
}
 
源代码12 项目: cuba   文件: DesktopAbstractBox.java
@Override
public int indexOf(Component child) {
    return Iterables.indexOf(ownComponents, c -> c == child);
}
 
源代码13 项目: binnavi   文件: JGraphTab.java
private Color selectTabBackGroundColor(final int seed) {

    final int insertionPosition =
        Iterables.indexOf(moduleIdCount.keySet(), Predicates.equalTo(seed));

    switch (insertionPosition) {
      case 0:
        return Color.getHSBColor((float) 0.55, (float) 0.2, (float) 0.8);
      case 1:
        return Color.getHSBColor((float) 0.6, (float) 0.2, (float) 0.8);
      case 2:
        return Color.getHSBColor((float) 0.65, (float) 0.2, (float) 0.8);
      case 3:
        return Color.getHSBColor((float) 0.7, (float) 0.2, (float) 0.8);
      case 4:
        return Color.getHSBColor((float) 0.75, (float) 0.2, (float) 0.8);
      case 5:
        return Color.getHSBColor((float) 0.8, (float) 0.2, (float) 0.8);
      case 6:
        return Color.getHSBColor((float) 0.85, (float) 0.2, (float) 0.8);
      case 7:
        return Color.getHSBColor((float) 0.9, (float) 0.2, (float) 0.8);
      case 8:
        return Color.getHSBColor((float) 0.95, (float) 0.2, (float) 0.8);
      case 9:
        return Color.getHSBColor(1, (float) 0.2, (float) 0.8);
      case 10:
        return Color.getHSBColor((float) 0.05, (float) 0.2, (float) 0.8);
      case 11:
        return Color.getHSBColor((float) 0.1, (float) 0.2, (float) 0.8);
      case 12:
        return Color.getHSBColor((float) 0.15, (float) 0.2, (float) 0.8);
      case 13:
        return Color.getHSBColor((float) 0.2, (float) 0.2, (float) 0.8);
      case 14:
        return Color.getHSBColor((float) 0.25, (float) 0.2, (float) 0.8);
      case 15:
        return Color.getHSBColor((float) 0.3, (float) 0.2, (float) 0.8);
      case 16:
        return Color.getHSBColor((float) 0.35, (float) 0.2, (float) 0.8);
      case 17:
        return Color.getHSBColor((float) 0.4, (float) 0.2, (float) 0.8);
      case 18:
        return Color.getHSBColor((float) 0.45, (float) 0.2, (float) 0.8);
      case 19:
        return Color.getHSBColor((float) 0.5, (float) 0.2, (float) 0.8);
      default:
        return Color.WHITE;
    }
  }
 
源代码14 项目: gama   文件: GamaListCollectionWrapper.java
@Override
public int indexOf(final Object o) {
	return Iterables.indexOf(wrapped, (o1) -> Objects.equal(o, o1));
}
 
源代码15 项目: astor   文件: SymbolTable.java
/** Gets a unique index for the symbol in this scope. */
public int getIndexOfSymbol(Symbol sym) {
  return Iterables.indexOf(
      ownSymbols.values(), Predicates.equalTo(sym));
}
 
源代码16 项目: calcite   文件: DruidQuery.java
/**
 * @return index of the timestamp ref or -1 if not present
 */
protected int getTimestampFieldIndex() {
  return Iterables.indexOf(this.getRowType().getFieldList(),
      input -> druidTable.timestampFieldName.equals(input.getName()));
}
 
源代码17 项目: log-synth   文件: PurchaseLog.java
public static void main(String[] args) throws IOException {
    Options opts = new Options();
    CmdLineParser parser = new CmdLineParser(opts);
    try {
        parser.parseArgument(args);
    } catch (CmdLineException e) {
        System.err.println("Usage: -count <number>G|M|K [ -users number ]  log-file user-profiles");
        return;
    }

    Joiner withTab = Joiner.on("\t");

    // first generate lots of user definitions
    //noinspection UnstableApiUsage
    SchemaSampler users = new SchemaSampler(Resources.asCharSource(Resources.getResource("user-schema.txt"), Charsets.UTF_8).read());
    File userFile = File.createTempFile("user", "tsv");
    BufferedWriter out = Files.newBufferedWriter(userFile.toPath(), Charsets.UTF_8);
    for (int i = 0; i < opts.users; i++) {
        out.write(withTab.join(users.sample()));
        out.newLine();
    }
    out.close();

    // now generate a session for each user
    Splitter onTabs = Splitter.on("\t");
    Splitter onComma = Splitter.on(",");

    Random gen = new Random();
    //noinspection UnstableApiUsage
    SchemaSampler intermediate = new SchemaSampler(Resources.asCharSource(Resources.getResource("hit_step.txt"), Charsets.UTF_8).read());

    final int COUNTRY = Iterables.indexOf(users.getFieldNames(), "country"::equals);
    final int CAMPAIGN = Iterables.indexOf(intermediate.getFieldNames(), "campaign_list"::equals);
    final int SEARCH_TERMS = Iterables.indexOf(intermediate.getFieldNames(),"search_keywords"::equals);
    Preconditions.checkState(COUNTRY >= 0, "Need country field in user schema");
    Preconditions.checkState(CAMPAIGN >= 0, "Need campaign_list field in step schema");
    Preconditions.checkState(SEARCH_TERMS >= 0, "Need search_keywords field in step schema");

    out = Files.newBufferedWriter(new File(opts.out).toPath(), Charsets.UTF_8);

    for (String line : Files.readAllLines(userFile.toPath(), Charsets.UTF_8)) {
        long t = (long) (TimeUnit.MILLISECONDS.convert(30, TimeUnit.DAYS) * gen.nextDouble());
        List<String> user = Lists.newArrayList(onTabs.split(line));

        // pick session length
        int n = (int) Math.floor(-30 * Math.log(gen.nextDouble()));

        for (int i = 0; i < n; i++) {
            // time on page
            int dt = (int) Math.floor(-20000 * Math.log(gen.nextDouble()));
            t += dt;

            // hit specific values
            JsonNode step = intermediate.sample();

            // check for purchase
            double p = 0.01;
            List<String> campaigns = Lists.newArrayList(onComma.split(step.get("campaign_list").asText()));
            List<String> keywords = Lists.newArrayList(onComma.split(step.get("search_keywords").asText()));
            if ((user.get(COUNTRY).equals("us") && campaigns.contains("5")) ||
                    (user.get(COUNTRY).equals("jp") && campaigns.contains("7")) ||
                    keywords.contains("homer") || keywords.contains("simpson")) {
                p = 0.5;
            }

            String events = gen.nextDouble() < p ? "1" : "-";

            out.write(Long.toString(t));
            out.write("\t");
            out.write(line);
            out.write("\t");
            out.write(withTab.join(step));
            out.write("\t");
            out.write(events);
            out.write("\n");
        }
    }
    out.close();
}
 
源代码18 项目: exonum-java-binding   文件: ExonumIterables.java
/**
 * Returns an index of the first element matching the predicate or {@code OptionalInt.empty()}
 * if no such element exists.
 *
 * @param list a list to search in
 * @param p a predicate that an element must match
 * @param <T> the type of elements
 */
static <T> OptionalInt indexOf(Iterable<T> list, Predicate<? super T> p) {
  int i = Iterables.indexOf(list, p::test);
  if (i == -1) {
    return OptionalInt.empty();
  }
  return OptionalInt.of(i);
}