Example usage for com.google.common.collect Queues newArrayDeque

List of usage examples for com.google.common.collect Queues newArrayDeque

Introduction

In this page you can find the example usage for com.google.common.collect Queues newArrayDeque.

Prototype

public static <E> ArrayDeque<E> newArrayDeque() 

Source Link

Document

Creates an empty ArrayDeque .

Usage

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;
}