List of usage examples for com.google.common.collect Queues newArrayDeque
public static <E> ArrayDeque<E> newArrayDeque()
From source file:com.reprezen.kaizen.oasparser.jsonoverlay.Resolver.java
private static Iterable<JsonNode> treeWalk(JsonNode tree) { final ArrayDeque<JsonNode> toVisit = Queues.newArrayDeque(); toVisit.add(tree);// w w w. j a v a 2s.c o m return new Iterable<JsonNode>() { @Override public Iterator<JsonNode> iterator() { return new Iterator<JsonNode>() { @Override public boolean hasNext() { return !toVisit.isEmpty(); } @Override public JsonNode next() { if (hasNext()) { JsonNode next = toVisit.remove(); queueChildren(next); return next; } else { throw new NoSuchElementException(); } } @Override public void remove() { throw new UnsupportedOperationException(); } private void queueChildren(JsonNode node) { if (node.isArray()) { for (Iterator<JsonNode> iter = node.elements(); iter.hasNext();) { toVisit.addFirst(iter.next()); } } else if (node.isObject()) { for (Iterator<Entry<String, JsonNode>> iter = node.fields(); iter.hasNext();) { toVisit.addFirst(iter.next().getValue()); } } } }; } }; }
From source file:net.sourceforge.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);//from ww w. ja va2 s.c o m } 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); } } } }
From source file:com.googlecode.blaisemath.graph.mod.metrics.BetweenCentrality.java
/** * Breadth-first search algorithm for an unweighted graph to generate * betweenness scores, with specified starting vertex. From <i>Brandes</i>, * "A Faster Algorithm for Betweenness Centrality" * * @param graph the graph/* w w w . j av a 2s . c o m*/ * @param start the start vertex * @param between data structure storing existing betweenness centrality values * @param multiplier applied to all elements of resulting map * @return data structure encoding the result */ static <V> Map<V, Double> brandes(Graph<V> graph, V start, Map<V, Double> between, double multiplier) { Set<V> nodes = graph.nodes(); if (!nodes.contains(start)) { return new HashMap<V, Double>(); } // number of shortest paths to each vertex Multiset<V> numShortest = HashMultiset.create(); // length of shortest paths to each vertex Map<V, Integer> lengths = new HashMap<V, Integer>(); // tracks elements in non-increasing order for later use Deque<V> deque = Queues.newArrayDeque(); // tracks vertex predecessors in resulting tree Multimap<V, V> pred = HashMultimap.create(); GraphUtils.breadthFirstSearch(graph, start, numShortest, lengths, deque, pred); // compute betweenness Map<V, Double> dependencies = new HashMap<V, Double>(); for (V v : nodes) { dependencies.put(v, 0.0); } while (!deque.isEmpty()) { V w = deque.pollLast(); for (V v : pred.get(w)) { dependencies.put(v, dependencies.get(v) + (double) numShortest.count(v) / numShortest.count(w) * (1 + dependencies.get(w))); } if (w != start) { between.put(w, between.get(w) + multiplier * dependencies.get(w)); } } return between; }
From source file:org.obm.servlet.filter.resource.ResourcesHolder.java
public ResourcesHolder() { resources = MutableClassToInstanceMap.create(); lifo = Queues.newArrayDeque(); }
From source file:com.facebook.buck.simulate.BuildSimulator.java
public SimulateReport simulateBuild(long currentTimeMillis, ImmutableList<BuildTarget> buildTargets) { Preconditions.checkArgument(buildTargets.size() > 0, "No targets provided for the simulation."); SimulateReport.Builder simulateReport = SimulateReport.builder(); for (String timeAggregate : times.getTimeAggregates()) { // Setup the build order. Map<BuildTarget, NodeState> reverseDependencies = Maps.newHashMap(); Queue<BuildTarget> leafNodes = Queues.newArrayDeque(); int totalDagEdges = 0; for (BuildTarget target : buildTargets) { BuildRule rule;/*from ww w . j av a 2 s .c o m*/ try { rule = resolver.requireRule(target); } catch (NoSuchBuildTargetException e) { throw new HumanReadableException(e.getHumanReadableErrorMessage()); } totalDagEdges += recursiveTraversal(rule, reverseDependencies, leafNodes); } SingleRunReport.Builder report = SingleRunReport.builder().setTimestampMillis(currentTimeMillis) .setBuildTargets(FluentIterable.from(buildTargets).transform(Functions.toStringFunction())) .setSimulateTimesFile(times.getFile()) .setRuleFallbackTimeMillis(times.getRuleFallbackTimeMillis()) .setTotalActionGraphNodes(Iterables.size(actionGraph.getNodes())) .setTimeAggregate(timeAggregate).setNumberOfThreads(numberOfThreads); report.setTotalDependencyDagEdges(totalDagEdges); // Run the simulation. simulateReport.addRunReports(runSimulation(report, reverseDependencies, leafNodes, timeAggregate)); } return simulateReport.build(); }
From source file:com.facebook.buck.distributed.build_client.RemoteExecutionBuildTargetsQueue.java
public RemoteExecutionBuildTargetsQueue() { this.targetsWaitingToBeBuilt = Queues.newArrayDeque(); this.targetsBuilding = Maps.newConcurrentMap(); this.haveRemoteMachinesConnected = false; this.totalTargetsEnqueued = 0; this.totalTargetsBuilt = 0; }
From source file:com.cognifide.aet.runner.distribution.dispatch.CollectDispatcher.java
public void process() throws JMSException { Deque<MessageWithDestination> messagesQueue = Queues.newArrayDeque(); LOGGER.info("Starting processing new Test Suite. CorrelationId: {} ", correlationId); for (Test test : suite.get().getTests()) { processUrlsAndGroupToPackages(messagesQueue, test); }// w w w . j av a 2s.c o m collectorJobScheduler.add(messagesQueue, suite.get().getCorrelationId()); LOGGER.info("MessagesQueue was added to collectorJobScheduler. CorrelationId: {} ", correlationId); }
From source file:org.sbs.goodcrawler.extractor.selector.IFConditions.java
/** * ???//from w w w.ja va 2 s . c om * * @param depend * @return */ public boolean test(Map<String, Object> selectContent) throws ExtractException { TreeMap<Integer, String> conIndex = Maps.newTreeMap(); Queue<SimpleExpression> expressionQueue = Queues.newArrayDeque(); Queue<String> logicQueue = Queues.newArrayDeque(); // a=b and c=d or c=e or x=y int index = 0; for (String co : cond) { index = 0; while ((index = conditions.indexOf(co, index + 1)) > -1) { int i = index; conIndex.put(i, co); } } index = 0; for (Entry<Integer, String> entry : conIndex.entrySet()) { String subExp = conditions.substring(index, entry.getKey()); for (String op : operations) { int i = subExp.indexOf(op); if (i > -1) { String[] ss = subExp.split(op); if (null == selectContent.get(ss[0].trim())) { throw new ExtractException("?????[" + this.conditions + "] " + ss[0]); } expressionQueue .add(new SimpleExpression(StringUtils.trim((String) selectContent.get(ss[0].trim())), StringUtils.trim(ss[1]), op)); logicQueue.add(StringUtils.trim(entry.getValue())); } } index = entry.getKey() + entry.getValue().length(); } // ?? String subExp = conditions.substring(index); for (String op : operations) { int i = subExp.indexOf(op); if (i > -1) { String[] ss = subExp.split(op); if (null == selectContent.get(ss[0].trim())) { throw new ExtractException("?????[" + this.conditions + "] " + ss[0]); } expressionQueue.add(new SimpleExpression(StringUtils.trim((String) selectContent.get(ss[0].trim())), StringUtils.trim(ss[1]), op)); } } boolean b; try { b = expressionQueue.poll().test(); while (!expressionQueue.isEmpty()) { b = cacl(b, logicQueue.poll(), expressionQueue.poll()); } return b; } catch (Exception e) { e.printStackTrace(); } return false; }
From source file:io.v.android.impl.google.discovery.plugins.ble.GattReader.java
/** * Creates a new Gatt reader./* w w w .ja v a 2 s. c om*/ * <p/> * * An empty uuids means all Vanadium services and baseUuid and maskUuid will be used to * filter Vanadium services. */ GattReader(Context context, Set<UUID> uuids, UUID baseUuid, UUID maskUuid, Handler handler) { mContext = context; mExecutor = new ScheduledThreadPoolExecutor(1); mExecutor.setExecuteExistingDelayedTasksAfterShutdownPolicy(false); mScanUuids = uuids; mScanBaseUuid = baseUuid; mScanMaskUuid = maskUuid; mHandler = handler; mPendingReads = Queues.newArrayDeque(); }
From source file:com.google.idea.blaze.base.run.testmap.FilteredTargetMap.java
private Collection<TargetIdeInfo> targetsForSourceFileImpl(ImmutableMultimap<TargetKey, TargetKey> rdepsMap, File sourceFile) {/*from ww w . j a v a 2s. c o m*/ List<TargetIdeInfo> result = Lists.newArrayList(); Collection<TargetKey> roots = rootsMap.get(sourceFile); Queue<TargetKey> todo = Queues.newArrayDeque(); for (TargetKey label : roots) { todo.add(label); } Set<TargetKey> seen = Sets.newHashSet(); while (!todo.isEmpty()) { TargetKey targetKey = todo.remove(); if (!seen.add(targetKey)) { continue; } TargetIdeInfo target = targetMap.get(targetKey); if (filter.test(target)) { result.add(target); } for (TargetKey rdep : rdepsMap.get(targetKey)) { todo.add(rdep); } } return result; }