com.google.common.collect.Queues#newArrayDeque ( )源码实例Demo

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

源代码1 项目: ganttproject   文件: TaskManagerImpl.java
@Override
public void breadthFirstSearch(Task root, Predicate<Pair<Task, Task>> predicate) {
  Preconditions.checkNotNull(root);
  Queue<Task> queue = Queues.newArrayDeque();
  if (predicate.apply(Pair.create((Task) null, root))) {
    queue.add(root);
  }
  while (!queue.isEmpty()) {
    Task head = queue.poll();
    for (Task child : head.getNestedTasks()) {
      if (predicate.apply(Pair.create(head, child))) {
        queue.add(child);
      }
    }
  }
}
 
源代码2 项目: SpinalTap   文件: JsonSerializationTest.java
@Test
public void testSerializeStateHistory() throws Exception {
  SourceState firstState = new SourceState(15l, 20l, -1l, BINLOG_FILE_POS);
  SourceState secondState = new SourceState(16l, 21l, -1l, BINLOG_FILE_POS);
  SourceState thirdState = new SourceState(17l, 22l, -1l, BINLOG_FILE_POS);

  Deque<SourceState> stateHistory = Queues.newArrayDeque();
  stateHistory.addLast(firstState);
  stateHistory.addLast(secondState);
  stateHistory.addLast(thirdState);

  Collection<SourceState> states =
      JsonUtil.OBJECT_MAPPER.readValue(
          JsonUtil.OBJECT_MAPPER.writeValueAsString(stateHistory),
          new TypeReference<Collection<SourceState>>() {});

  stateHistory = Queues.newArrayDeque(states);

  assertEquals(3, states.size());
  assertEquals(thirdState, stateHistory.removeLast());
  assertEquals(secondState, stateHistory.removeLast());
  assertEquals(firstState, stateHistory.removeLast());
}
 
@Test
public void testRetriableFail() throws Exception {
  Queue<RequestAndCallback> queue = Queues.newArrayDeque();

  BatchedPermitsRequester container = BatchedPermitsRequester.builder().resourceId("resource")
      .requestorIdentifier("requestor").requestSender(new TestRequestSender(queue, false))
      .maxTimeoutMillis(1000).build();
  try (ParallelRequester requester = new ParallelRequester(container)) {

    Future<Boolean> future = requester.request(10);

    for (int i = 0; i < BatchedPermitsRequester.MAX_RETRIES; i++) {
      // container will fail 5 times
      await(new QueueSize(queue, 1), 1000);
      Assert.assertFalse(future.isDone());
      failRequestBuilder().requestAndCallback(queue.poll()).fail();
    }

    // should return a failure
    Assert.assertFalse(future.get());
    // should not make any more request
    Assert.assertEquals(queue.size(), 0);
  }
}
 
源代码4 项目: atomix   文件: DefaultDocumentTreeService.java
@Override
public void clear() {
  Queue<DocumentPath> toClearQueue = Queues.newArrayDeque();
  Map<String, Versioned<byte[]>> topLevelChildren = docTree.getChildren(DocumentPath.ROOT);
  toClearQueue.addAll(topLevelChildren.keySet()
      .stream()
      .map(name -> new DocumentPath(name, DocumentPath.ROOT))
      .collect(Collectors.toList()));
  while (!toClearQueue.isEmpty()) {
    DocumentPath path = toClearQueue.remove();
    Map<String, Versioned<byte[]>> children = docTree.getChildren(path);
    if (children.size() == 0) {
      docTree.remove(path);
    } else {
      children.keySet().forEach(name -> toClearQueue.add(new DocumentPath(name, path)));
      toClearQueue.add(path);
    }
  }
}
 
源代码5 项目: intellij   文件: ProtoAutoSyncProvider.java
/**
 * Finds all 'plain' targets in a target+aspect's rdeps, stopping at the first plain target it
 * finds along each path.
 */
private static List<Label> getPlainTargets(Project project, TargetKey target) {
  if (target.isPlainTarget()) {
    return ImmutableList.of(target.getLabel());
  }
  List<Label> output = new ArrayList<>();
  Queue<TargetKey> todo = Queues.newArrayDeque();
  ImmutableMultimap<TargetKey, TargetKey> reverseDependencyMap =
      ReverseDependencyMap.get(project);
  todo.addAll(reverseDependencyMap.get(target));
  Set<TargetKey> seen = Sets.newHashSet();
  while (!todo.isEmpty()) {
    TargetKey targetKey = todo.remove();
    if (!seen.add(targetKey)) {
      continue;
    }
    if (targetKey.isPlainTarget()) {
      output.add(targetKey.getLabel());
    } else {
      todo.addAll(reverseDependencyMap.get(targetKey));
    }
  }
  return output;
}
 
源代码6 项目: datawave   文件: RangeStreamScanner.java
/**
 * @param tableName
 * @param auths
 * @param delegator
 * @param maxResults
 */
public RangeStreamScanner(String tableName, Set<Authorizations> auths, ResourceQueue delegator, int maxResults, Query settings, SessionOptions options,
                Collection<Range> ranges) {
    super(tableName, auths, delegator, maxResults, settings, options, ranges);
    delegatedResourceInitializer = BatchResource.class;
    currentQueue = Queues.newArrayDeque();
    readLock = queueLock.readLock();
    writeLock = queueLock.writeLock();
    myExecutor = MoreExecutors.sameThreadExecutor();
    if (null != stats)
        initializeTimers();
}
 
源代码7 项目: intellij-pants-plugin   文件: BuildGraph.java
private Set<BuildGraphNode> expandAliasTargets(Set<BuildGraphNode> initialTargets) {
  Set<BuildGraphNode> results = Sets.newHashSet();
  ArrayDeque<BuildGraphNode> q = Queues.newArrayDeque(initialTargets);
  while (!q.isEmpty()) {
    BuildGraphNode curr = q.pop();
    if (curr.isAliasTarget()) {
      q.addAll(curr.getDependencies());
    }
    else {
      results.add(curr);
    }
  }
  return results;
}
 
源代码8 项目: ForgeHax   文件: ChunkLogger.java
@Override
protected void onEnabled() {
  chunkLock.lock();
  try {
    if (max_chunks.get() <= 0) {
      chunks = Queues.newArrayDeque();
    } else {
      chunks = EvictingQueue.create(max_chunks.get());
    }
  } finally {
    chunkLock.unlock();
  }
}
 
源代码9 项目: newts   文件: CassandraResourceTreeWalker.java
/**
 * Visits all nodes in the resource tree bellow the given resource using
 * depth-first search.
 */
public void depthFirstSearch(Context context, SearchResultVisitor visitor, Resource root) {
    ArrayDeque<SearchResults.Result> stack = Queues.newArrayDeque();

    // Build an instance of a SearchResult for the root resource
    // but don't invoke the visitor with it
    boolean skipFirstVisit = true;
    SearchResults initialResults = new SearchResults();
    initialResults.addResult(root, new ArrayList<String>(0));
    stack.add(initialResults.iterator().next());

    while (!stack.isEmpty()) {
        SearchResults.Result r = stack.pop();
        if (skipFirstVisit) {
            skipFirstVisit = false;
        } else {
            if (!visitor.visit(r)) {
                return;
            }
        }

        // Reverse the order of the results so we walk the left-most
        // branches first
        ImmutableList<SearchResults.Result> results = ImmutableList.copyOf(m_searcher.search(
                context, matchKeyAndValue(Constants.PARENT_TERM_FIELD, r.getResource().getId())));
        for (SearchResults.Result result : results.reverse()) {
            stack.push(result);
        }
    }
}
 
@Test
public void testWaitToUsePermits() throws Exception {
  Queue<RequestAndCallback> queue = Queues.newArrayDeque();

  BatchedPermitsRequester container = BatchedPermitsRequester.builder().resourceId("resource")
      .requestorIdentifier("requestor").requestSender(new TestRequestSender(queue, false)).build();

  Sleeper.MockSleeper mockWaiter = new Sleeper.MockSleeper();
  BatchedPermitsRequester.AllocationCallback callback = container.createAllocationCallback(mockWaiter);

  PermitAllocation allocation = new PermitAllocation();
  allocation.setPermits(10);
  allocation.setWaitForPermitUseMillis(20);
  allocation.setExpiration(Long.MAX_VALUE);

  Response<PermitAllocation> response = Mockito.mock(Response.class);
  Mockito.when(response.getEntity()).thenReturn(allocation);

  // Normally the semaphore is reserved during a request. Since we're mocking a response without ever starting a request,
  // manually reserve the semaphore
  Assert.assertTrue(container.reserveSemaphore());

  callback.onSuccess(response);
  Assert.assertEquals((long) mockWaiter.getRequestedSleeps().peek(), 20);
  Assert.assertEquals(container.getPermitBatchContainer().getTotalAvailablePermits(), 10);

  // A zero wait will not trigger a wait in the requester
  allocation.setWaitForPermitUseMillis(0);
  mockWaiter.reset();
  callback.onSuccess(response);
  Assert.assertTrue(mockWaiter.getRequestedSleeps().isEmpty());
  Assert.assertEquals(container.getPermitBatchContainer().getTotalAvailablePermits(), 20);
}
 
源代码11 项目: dagger2-sample   文件: ConfigurationAnnotations.java
/**
 * Returns the full set of modules transitively {@linkplain Module#includes included} from the
 * given seed modules.  If a module is malformed and a type listed in {@link Module#includes}
 * is not annotated with {@link Module}, it is ignored.
 */
static ImmutableSet<TypeElement> getTransitiveModules(
    Types types, Elements elements, Iterable<TypeElement> seedModules) {
  TypeMirror objectType = elements.getTypeElement(Object.class.getCanonicalName()).asType();
  Queue<TypeElement> moduleQueue = Queues.newArrayDeque(seedModules);
  Set<TypeElement> moduleElements = Sets.newLinkedHashSet();
  for (TypeElement moduleElement = moduleQueue.poll();
      moduleElement != null;
      moduleElement = moduleQueue.poll()) {
    Optional<AnnotationMirror> moduleMirror = getAnnotationMirror(moduleElement, Module.class)
        .or(getAnnotationMirror(moduleElement, ProducerModule.class));
    if (moduleMirror.isPresent()) {
      ImmutableSet.Builder<TypeElement> moduleDependenciesBuilder = ImmutableSet.builder();
      moduleDependenciesBuilder.addAll(
          MoreTypes.asTypeElements(getModuleIncludes(moduleMirror.get())));
      // (note: we don't recurse on the parent class because we don't want the parent class as a
      // root that the component depends on, and also because we want the dependencies rooted
      // against this element, not the parent.)
      addIncludesFromSuperclasses(types, moduleElement, moduleDependenciesBuilder, objectType);
      ImmutableSet<TypeElement> moduleDependencies = moduleDependenciesBuilder.build();
      moduleElements.add(moduleElement);
      for (TypeElement dependencyType : moduleDependencies) {
        if (!moduleElements.contains(dependencyType)) {
          moduleQueue.add(dependencyType);
        }
      }
    }
  }
  return ImmutableSet.copyOf(moduleElements);
}
 
源代码12 项目: ganttproject   文件: TreeUtil.java
public static void breadthFirstSearch(MutableTreeTableNode root, Predicate<Pair<MutableTreeTableNode, MutableTreeTableNode>> predicate) {
  final Queue<MutableTreeTableNode> queue = Queues.newArrayDeque();
  if (predicate.apply(Pair.create((MutableTreeTableNode) null, root))) {
    queue.add(root);
  }
  while (!queue.isEmpty()) {
    MutableTreeTableNode head = queue.poll();
    for (int i = 0; i < head.getChildCount(); i++) {
      MutableTreeTableNode child = (MutableTreeTableNode) head.getChildAt(i);
      if (predicate.apply(Pair.create(head, child))) {
        queue.add(child);
      }
    }
  }
}
 
源代码13 项目: datawave   文件: ShardLimitingIterator.java
public ShardLimitingIterator(Iterator<Entry<Key,Value>> kvIter, int maxShardsPerDay) {
    this.kvIter = new PeekingIterator<>(kvIter);
    this.maxShardsPerDay = maxShardsPerDay;
    currentQueue = Queues.newArrayDeque();
}
 
源代码14 项目: datawave   文件: NestedQueryIterator.java
public NestedQueryIterator(NestedQuery<T> start) {
    nests = Queues.newArrayDeque();
    addNestedIterator(start);
}
 
@Test
public void testNoMoreThanOneRequestAtATime() throws Exception {
  Queue<RequestAndCallback> queue = Queues.newArrayDeque();

  BatchedPermitsRequester container = BatchedPermitsRequester.builder().resourceId("resource")
      .requestorIdentifier("requestor").requestSender(new TestRequestSender(queue, false)).build();
  try (ParallelRequester requester = new ParallelRequester(container)) {

    Future<Boolean> future = requester.request(1);

    await(new QueueSize(queue, 1), 1000);
    Assert.assertEquals(queue.size(), 1);

    Future<Boolean> future2 = requester.request(2);
    Future<Boolean> future3 = requester.request(3);
    Future<Boolean> future4 = requester.request(4);
    Future<Boolean> future5 = requester.request(5);

    Thread.sleep(100);

    Assert.assertEquals(queue.size(), 1);
    satisfyRequestBuilder().requestAndCallback(queue.poll()).satisfy();

    future.get(1, TimeUnit.SECONDS);
    Assert.assertTrue(future.isDone());
    Assert.assertTrue(future.get());

    await(new QueueSize(queue, 1), 1000);
    Assert.assertEquals(queue.size(), 1);
    satisfyRequestBuilder().requestAndCallback(queue.poll()).satisfy();

    future2.get(1, TimeUnit.SECONDS);
    future3.get(1, TimeUnit.SECONDS);
    future4.get(1, TimeUnit.SECONDS);
    future5.get(1, TimeUnit.SECONDS);

    Assert.assertTrue(future2.get());
    Assert.assertTrue(future3.get());
    Assert.assertTrue(future4.get());
    Assert.assertTrue(future5.get());
  }

}
 
源代码16 项目: datawave   文件: RangeStreamScanner.java
private int dequeue(boolean forceAll) {
    int count = 0;
    
    Queue<Entry<Key,Value>> kvIter = Queues.newArrayDeque(currentQueue);
    
    currentQueue.clear();
    boolean result = true;
    for (Entry<Key,Value> top : kvIter) {
        
        if (result) {
            do {
                result = resultQueue.offer(top);
                
                if (!result) {
                    if (log.isTraceEnabled())
                        log.trace("Failed adding " + resultQueue.size() + " " + forceAll);
                    if (forceAll)
                        continue;
                }
                
                break;
            } while (!finished && forceAll);
        }
        
        if (!result && !(!finished && forceAll)) {
            if (log.isTraceEnabled())
                log.trace("Adding " + top.getKey() + " back ");
            currentQueue.add(top);
        } else {
            if (log.isTraceEnabled())
                log.trace("missing " + top.getKey() + " true? " + result);
        }
        
        if (log.isTraceEnabled())
            log.trace("Last key is " + lastSeenKey);
        
        count++;
    }
    
    if (log.isTraceEnabled()) {
        log.trace("we have " + currentQueue.size() + " " + kvIter.size());
    }
    
    return count;
}
 
源代码17 项目: codebuff   文件: Dispatcher.java
@Override
protected Queue<Event> initialValue() {
  return Queues.newArrayDeque();
}
 
源代码18 项目: codebuff   文件: Dispatcher.java
@Override
protected Queue<Event> initialValue() {
  return Queues.newArrayDeque();
}
 
源代码19 项目: codebuff   文件: Dispatcher.java
@Override
protected Queue<Event> initialValue() {
  return Queues.newArrayDeque();
}
 
源代码20 项目: ig-json-parser   文件: SerializeTest.java
@Test
public void serializeOrderTest() throws IOException {
  final int intValue = 25;
  final int integerValue = 37;
  final float floatValue = 1f;
  final float floatObjectValue = 5f;
  final String stringValue = "hello world\r\n\'\"";
  final List<Integer> integerList = Lists.newArrayList(1, 2, 3, 4);
  final ArrayList<Integer> integerArrayList = Lists.newArrayList(1, 2, 3, 4);
  final Queue<Integer> integerQueue = Queues.newArrayDeque(Arrays.asList(1, 2, 3, 4));
  final Set<Integer> integerSet = Sets.newHashSet(1, 2, 3, 4);
  final int subIntValue = 30;
  final SimpleParseUUT.SubenumUUT subEnum = SimpleParseUUT.SubenumUUT.A;
  final List<SimpleParseUUT.SubenumUUT> subEnumList =
      Lists.newArrayList(SimpleParseUUT.SubenumUUT.A, SimpleParseUUT.SubenumUUT.B);

  SimpleParseUUT source = new SimpleParseUUT();
  source.intField = intValue;
  source.integerField = integerValue;
  source.floatField = floatValue;
  source.FloatField = floatObjectValue;
  source.stringField = stringValue;
  source.integerListField = integerList;
  source.integerArrayListField = integerArrayList;
  source.integerQueueField = integerQueue;
  source.integerSetField = integerSet;
  source.subobjectField = new SimpleParseUUT.SubobjectParseUUT();
  source.subobjectField.intField = subIntValue;
  source.subenumField = subEnum;
  source.subenumFieldList = subEnumList;

  StringWriter stringWriter = new StringWriter();
  JsonGenerator jsonGenerator = new JsonFactory().createGenerator(stringWriter);

  SimpleParseUUT__JsonHelper.serializeToJson(jsonGenerator, source, true);
  jsonGenerator.close();

  String inputString = stringWriter.toString();

  // Test that fields appear in the order specified in the class
  for (int i = 0; i < FIELD_DECLARATION_ORDER.length - 1; i++) {
    assertTrue(
        inputString.indexOf("\"" + FIELD_DECLARATION_ORDER[i] + "\"")
            < inputString.indexOf("\"" + FIELD_DECLARATION_ORDER[i + 1] + "\""));
  }
}