com.google.common.collect.Iterators#cycle ( )源码实例Demo

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

源代码1 项目: storm-dynamic-spout   文件: RatioMessageBuffer.java
private void recalculateOrdering() {
    // clear ordering
    order.clear();

    // Create new ordering, probably a better way to do this...
    for (Map.Entry<VirtualSpoutIdentifier, Boolean> entry : allIds.entrySet()) {
        // If throttled
        if (entry.getValue()) {
            order.add(entry.getKey());
        } else {
            // Add entries at ratio
            for (int x = 0; x < ratio; x++) {
                order.add(entry.getKey());
            }
        }
    }

    // create new iterator that cycles endlessly
    virtualSpoutIdentifierIterator = Iterators.cycle(order);
}
 
源代码2 项目: dremio-oss   文件: TestAssignment.java
@Test
public void manyFiles() throws Exception {
  List<CompleteWork> chunks = generateChunks(1000);

  Iterator<NodeEndpoint> incomingEndpointsIterator = Iterators.cycle(endpoints);

  List<NodeEndpoint> incomingEndpoints = Lists.newArrayList();

  final int width = 28 * 30;
  for (int i = 0; i < width; i++) {
    incomingEndpoints.add(incomingEndpointsIterator.next());
  }

  ListMultimap<Integer, CompleteWork> mappings = AssignmentCreator.getMappings(incomingEndpoints, chunks);
  System.out.println(mappings.keySet().size());
  for (int i = 0; i < width; i++) {
    Assert.assertTrue("no mapping for entry " + i, mappings.get(i) != null && mappings.get(i).size() > 0);
  }
}
 
源代码3 项目: tracecompass   文件: SwtBarChart.java
@Override
protected void setSelection(@NonNull Set<@NonNull Object> set) {
    super.setSelection(set);

    /* Set color of selected symbol */
    Iterator<Color> colorsIt = Iterators.cycle(COLORS);
    Iterator<Color> lightColorsIt = Iterators.cycle(COLORS_LIGHT);

    for (ISeries series : getChart().getSeriesSet().getSeries()) {
        /* Series color */
        Color lightColor = NonNullUtils.checkNotNull(lightColorsIt.next());
        Color color = NonNullUtils.checkNotNull(colorsIt.next());

        if (set.isEmpty()) {
            /* Put all symbols to the normal colors */
            ((IBarSeries) series).setBarColor(color);
        } else {
            /*
             * Fill with light colors to represent the deselected state. The
             * paint listener is then responsible for drawing the cross and
             * the dark colors for the selection.
             */
            ((IBarSeries) series).setBarColor(lightColor);
        }
    }
}
 
源代码4 项目: trident-tutorial   文件: SampleTweet.java
public SampleTweet() throws IOException {
    ObjectMapper om = new ObjectMapper();
    JsonFactory factory = new JsonFactory();
    ImmutableList.Builder<String> b = ImmutableList.builder();

    InputStreamReader reader = new InputStreamReader(this.getClass().getResourceAsStream("sample_tweet.json"));
    try {
        String tweetArray = CharStreams.toString(reader);
        ArrayNode parsed = (ArrayNode)om.readTree(tweetArray);
        for (JsonNode tweet : parsed) {
            StringWriter sw = new StringWriter();
            om.writeTree(factory.createGenerator(sw), tweet);
            b.add(sw.toString());
        }
        sampleTweet = Iterators.cycle(b.build());
    } finally {
        reader.close();
    }
}
 
源代码5 项目: grpc-nebula-java   文件: StressTestClient.java
WeightedTestCaseSelector(List<TestCaseWeightPair> testCaseWeightPairs) {
  Preconditions.checkNotNull(testCaseWeightPairs, "testCaseWeightPairs");
  Preconditions.checkArgument(testCaseWeightPairs.size() > 0);

  List<TestCases> testCases = new ArrayList<>();
  for (TestCaseWeightPair testCaseWeightPair : testCaseWeightPairs) {
    for (int i = 0; i < testCaseWeightPair.weight; i++) {
      testCases.add(testCaseWeightPair.testCase);
    }
  }

  shuffle(testCases);

  this.testCases = Iterators.cycle(testCases);
}
 
源代码6 项目: presto   文件: BenchmarkNodeScheduler.java
@Benchmark
@OperationsPerInvocation(SPLITS)
public Object benchmark(BenchmarkData data)
{
    List<RemoteTask> remoteTasks = ImmutableList.copyOf(data.getTaskMap().values());
    Iterator<MockRemoteTaskFactory.MockRemoteTask> finishingTask = Iterators.cycle(data.getTaskMap().values());
    Iterator<Split> splits = data.getSplits().iterator();
    Set<Split> batch = new HashSet<>();
    while (splits.hasNext() || !batch.isEmpty()) {
        Multimap<InternalNode, Split> assignments = data.getNodeSelector().computeAssignments(batch, remoteTasks).getAssignments();
        for (InternalNode node : assignments.keySet()) {
            MockRemoteTaskFactory.MockRemoteTask remoteTask = data.getTaskMap().get(node);
            remoteTask.addSplits(ImmutableMultimap.<PlanNodeId, Split>builder()
                    .putAll(new PlanNodeId("sourceId"), assignments.get(node))
                    .build());
            remoteTask.startSplits(MAX_SPLITS_PER_NODE);
        }
        if (assignments.size() == batch.size()) {
            batch.clear();
        }
        else {
            batch.removeAll(assignments.values());
        }
        while (batch.size() < SPLIT_BATCH_SIZE && splits.hasNext()) {
            batch.add(splits.next());
        }
        finishingTask.next().finishSplits((int) Math.ceil(MAX_SPLITS_PER_NODE / 50.0));
    }

    return remoteTasks;
}
 
源代码7 项目: DataflowTemplates   文件: KafkaUnboundedReader.java
private void nextBatch() throws IOException {
  curBatch = Collections.emptyIterator();

  ConsumerRecords<byte[], byte[]> records;
  try {
    // poll available records, wait (if necessary) up to the specified timeout.
    records =
        availableRecordsQueue.poll(
            RECORDS_DEQUEUE_POLL_TIMEOUT.getMillis(), TimeUnit.MILLISECONDS);
  } catch (InterruptedException e) {
    Thread.currentThread().interrupt();
    LOG.warn("{}: Unexpected", this, e);
    return;
  }

  if (records == null) {
    // Check if the poll thread failed with an exception.
    if (consumerPollException.get() != null) {
      throw new IOException("Exception while reading from Kafka", consumerPollException.get());
    }
    return;
  }

  partitionStates.forEach(p -> p.recordIter = records.records(p.topicPartition).iterator());

  // cycle through the partitions in order to interleave records from each.
  curBatch = Iterators.cycle(new ArrayList<>(partitionStates));
}
 
@Setup(Level.Iteration)
public void setup() {
    final Random r = new Random(1234567891L);
    dataIterator = Iterators.cycle(
            Stream.generate(() -> Math.round(Math.exp(2.0 + r.nextGaussian()))).limit(1048576)
                    .collect(Collectors.toList()));
}
 
源代码9 项目: mesh   文件: _assoc.java
public static MapValue invoke(final ListValue keys, final ListValue vals)
{
    if (vals.size() == 0)
        return PersistentMap.EMPTY;

    final PersistentMap result = PersistentMap.fresh();

    final Iterator<?> valiter = vals.size() >= keys.size() ?
        vals.iterator() : Iterators.cycle(vals);

    for (final Object key : keys)
        result.assocUnsafe(key, valiter.next());

    return result;
}
 
源代码10 项目: tracecompass   文件: SwtBarChart.java
@Override
public void paintControl(@Nullable PaintEvent event) {
    if (event == null) {
        return;
    }

    /* Don't draw if there's no selection */
    if (getSelection().getPoints().isEmpty()) {
        return;
    }

    /* Create iterators for the colors */
    Iterator<Color> colors = Iterators.cycle(COLORS);
    Iterator<Color> lights = Iterators.cycle(COLORS_LIGHT);

    GC gc = event.gc;

    /* Redraw all the series */
    for (ISeries swtSeries : getChart().getSeriesSet().getSeries()) {
        IBarSeries series = (IBarSeries) swtSeries;
        Color color = checkNotNull(colors.next());
        Color light = checkNotNull(lights.next());

        /* Redraw all the rectangles */
        for (int i = 0; i < series.getBounds().length; i++) {
            gc.setBackground(light);

            /* Check if the rectangle is selected */
            for (SwtChartPoint point : getSelection().getPoints()) {
                if (point.getSeries() == series && point.getIndex() == i) {
                    gc.setBackground(color);
                    break;
                }
            }

            gc.fillRectangle(series.getBounds()[i]);
        }
    }
}
 
源代码11 项目: hbc   文件: HttpHosts.java
/**
 * All httpHosts must start with the http scheme("http:// or https://")
 */
public HttpHosts(Iterable<String> addresses) {
  Preconditions.checkNotNull(addresses);
  Preconditions.checkArgument(!Iterables.isEmpty(addresses));
  for (String address : addresses) {
    if (!address.toLowerCase().startsWith(HttpConstants.HTTP_SCHEME + "://") &&
        !address.toLowerCase().startsWith(HttpConstants.HTTPS_SCHEME + "://")) {
      throw new IllegalArgumentException("Address doesn't have an http scheme: " + address);
    }
  }
  List<String> copy = Lists.newArrayList(addresses);
  Collections.shuffle(copy);
  this.hosts = Iterators.cycle(copy);
}
 
源代码12 项目: Quiz   文件: Level.java
/**
 * Returns next unsolved exercise in cycle for specified
 * id.
 * 
 * @param id
 *            previous exercise id
 * @param forward
 *            search forward if true, backward if false
 * @return next unsolved exercise
 */
public Exercise getUnsolvedInCycle(int id, boolean forward) {
	if (getExercises() == null || getExercises().isEmpty()) {
		return null;
	}
	List<Exercise> exercises = null;
	if (forward) {
		exercises = new ArrayList<Exercise>(getExercises());
	} else {
		exercises = Lists.reverse(new ArrayList<Exercise>(getExercises()));
	}
	Iterator<Exercise> ie = Iterators.cycle(exercises);
	int count = 0;
	boolean isAfterSpecified = false;
	// Iterate over cycle.
	while (count <= exercises.size() + id) {
		Exercise e = ie.next();
		/* Search for next unsolved exercise only if
		 * specified by method parameter was reached
		 * or if parameter equals 0.
		 */
		if ((isAfterSpecified || id == 0) && !e.isSolved()) {
			return e;
		}
		/* Exercise specified by method parameter is 
		 * reached. Now next exercise can be searched. 
		 */
		if (id == e.getId()) {
			isAfterSpecified = true;
		}
		count++;
	}
	return null;
}
 
源代码13 项目: grpc-java   文件: StressTestClient.java
WeightedTestCaseSelector(List<TestCaseWeightPair> testCaseWeightPairs) {
  Preconditions.checkNotNull(testCaseWeightPairs, "testCaseWeightPairs");
  Preconditions.checkArgument(testCaseWeightPairs.size() > 0);

  List<TestCases> testCases = new ArrayList<>();
  for (TestCaseWeightPair testCaseWeightPair : testCaseWeightPairs) {
    for (int i = 0; i < testCaseWeightPair.weight; i++) {
      testCases.add(testCaseWeightPair.testCase);
    }
  }

  shuffle(testCases);

  this.testCases = Iterators.cycle(testCases);
}
 
源代码14 项目: mesh   文件: _group.java
public static MapValue invoke(final ListValue keys, final ListValue vals)
{
    if (vals.size() == 0)
        return PersistentMap.EMPTY;

    final PersistentMap result = PersistentMap.fresh();

    final Iterator<?> keyiter = keys.size() >= vals.size() ?
        keys.iterator() : Iterators.cycle(keys);

    for (final Object val : vals)
    {
        final Object key = keyiter.next();

        final PersistentList keyvals = (PersistentList)result.get(key);

        if (keyvals == null)
        {
            result.assocUnsafe(key, PersistentList.single(val));
        }
        else
        {
            result.assocUnsafe(key, keyvals.appendUnsafe(val));
        }
    }

    return result;
}
 
源代码15 项目: atlas   文件: AtlasVirtualFile.java
private void reset() {
    this.allFilesCyclic = Iterators.cycle(this.files.values());
    this.restart();
}
 
源代码16 项目: joal   文件: TrackerClientUriProvider.java
public TrackerClientUriProvider(@SuppressWarnings("TypeMayBeWeakened") final List<URI> trackersURI) {
    // TODO: sorted(new PreferHTTPSComparator())
    this.addressIterator = Iterators.cycle(trackersURI);
}
 
@Test
public void testNoPruning() throws Exception {
  // Setup plugins
  Configuration conf = new Configuration();
  conf.set(TxConstants.TransactionPruning.PLUGINS,
           "data.tx.txprune.plugin.mockPlugin1, data.tx.txprune.plugin.mockPlugin2");
  conf.set("data.tx.txprune.plugin.mockPlugin1.class",
           "org.apache.tephra.txprune.TransactionPruningServiceTest$MockPlugin1");
  conf.set("data.tx.txprune.plugin.mockPlugin2.class",
           "org.apache.tephra.txprune.TransactionPruningServiceTest$MockPlugin2");
  // Setup schedule to run every second
  conf.setBoolean(TxConstants.TransactionPruning.PRUNE_ENABLE, true);
  conf.setInt(TxConstants.Manager.CFG_TX_MAX_LIFETIME, 10);
  conf.setLong(TxConstants.TransactionPruning.PRUNE_GRACE_PERIOD, 0);

  // Setup mock data
  long m = 1000;
  long n = m * TxConstants.MAX_TX_PER_MS;
  // Current time to be returned
  Iterator<Long> currentTime = Iterators.cycle(120L * m, 220L * m);
  // Transaction objects to be returned by mock tx manager
  Iterator<Transaction> txns =
    Iterators.cycle(new Transaction(100 * n, 110 * n, new long[]{40 * n, 50 * n, 60 * n, 70 * n},
                                    new long[]{80 * n, 90 * n}, 80 * n),
                    new Transaction(200 * n, 210 * n, new long[]{60 * n, 75 * n, 78 * n, 100 * n, 110 * n, 120 * n},
                                    new long[]{80 * n, 90 * n}, 80 * n));
  // Prune upper bounds to be returned by the mock plugins
  Iterator<Long> pruneUpperBoundsPlugin1 = Iterators.cycle(35L * n, -1L);
  Iterator<Long> pruneUpperBoundsPlugin2 = Iterators.cycle(70L * n, 100L * n);

  TestTransactionPruningRunnable.setCurrentTime(currentTime);
  MockTxManager.setTxIter(txns);
  MockPlugin1.setPruneUpperBoundIter(pruneUpperBoundsPlugin1);
  MockPlugin2.setPruneUpperBoundIter(pruneUpperBoundsPlugin2);

  MockTxManager mockTxManager = new MockTxManager(conf);
  TransactionPruningService pruningService = new TestTransactionPruningService(conf, mockTxManager);
  pruningService.startAndWait();
  // This will cause the pruning run to happen three times,
  // but we are interested in only first two runs for the assertions later
  int pruneRuns = TestTransactionPruningRunnable.getRuns();
  pruningService.pruneNow();
  pruningService.pruneNow();
  pruningService.pruneNow();
  TestTransactionPruningRunnable.waitForRuns(pruneRuns + 3, 5, TimeUnit.MILLISECONDS);
  pruningService.stopAndWait();

  // Assert inactive transaction bound
  Assert.assertEquals(ImmutableList.of(110L * n - 1, 210L * n - 1),
                      limitTwo(MockPlugin1.getInactiveTransactionBoundList()));
  Assert.assertEquals(ImmutableList.of(110L * n - 1, 210L * n - 1),
                      limitTwo(MockPlugin2.getInactiveTransactionBoundList()));

  // Invalid entries should not be pruned in any run
  Assert.assertEquals(ImmutableList.of(), MockTxManager.getPrunedInvalidsList());

  // No max invalid tx pruned for any run
  Assert.assertEquals(ImmutableList.of(), limitTwo(MockPlugin1.getMaxPrunedInvalidList()));
  Assert.assertEquals(ImmutableList.of(), limitTwo(MockPlugin2.getMaxPrunedInvalidList()));
}
 
源代码18 项目: dhis2-core   文件: CircularRoutingDataSource.java
public CircularRoutingDataSource( List<DataSource> targetDataSources )
{
    this.dataSourceIterator = Iterators.cycle( Collections.synchronizedList( targetDataSources ) );
}
 
源代码19 项目: nomulus   文件: LoadTestAction.java
private Function<String, String> listNameReplacer(final String toReplace, List<String> choices) {
  final Iterator<String> iterator = Iterators.cycle(choices);
  return xml -> xml.replace(toReplace, iterator.next());
}
 
源代码20 项目: nomulus   文件: DeterministicStringGenerator.java
public DeterministicStringGenerator(@Named("alphabetBase64") String alphabet, Rule rule) {
  super(alphabet);
  iterator = Iterators.cycle(charactersOf(alphabet));
  this.rule = rule;
}