Example usage for com.google.common.collect Lists reverse

List of usage examples for com.google.common.collect Lists reverse

Introduction

In this page you can find the example usage for com.google.common.collect Lists reverse.

Prototype

@CheckReturnValue
public static <T> List<T> reverse(List<T> list) 

Source Link

Document

Returns a reversed view of the specified list.

Usage

From source file:com.huawei.streaming.cql.semanticanalyzer.parser.context.ArithmeticPlusMinusExpressionContext.java

/**
 * binary?/* w ww . j  ava  2 s.  c  om*/
 *  logicExpressionAnd (KW_OR logicExpressionAnd)*
 * ???
 * @return
 * @throws SemanticAnalyzerException 
 */
private ExpressionDescribe createBinaryExpression(List<Schema> schemas) throws SemanticAnalyzerException {

    //??
    //????????????
    Iterator<String> operatorIterator = Lists.reverse(operator).iterator();
    if (!operatorIterator.hasNext()) {
        return null;
    }

    BinaryExpression bexp = BinaryExpressionRegistry.getBinaryExpressionByName(operatorIterator.next());
    BinaryExpressionDesc bexpdesc = new BinaryExpressionDesc(bexp);

    List<BaseExpressionParseContext> rightArguments = Lists.newLinkedList();
    rightArguments.addAll(starExpressions);
    BaseExpressionParseContext rightArgument = rightArguments.remove(rightArguments.size() - 1);

    bexpdesc.getArgExpressions().add(createBinaryExpressionDesc(rightArguments, schemas, operatorIterator));
    bexpdesc.getArgExpressions().add(rightArgument.createExpressionDesc(schemas));
    return bexpdesc;
}

From source file:com.aerofs.baseline.LifecycleManager.java

synchronized void stop() {
    for (Managed managed : Lists.reverse(services)) {
        try {/*from www  . ja v  a2  s  .  co  m*/
            managed.stop();
        } catch (Exception e) {
            LOGGER.warn("fail stop managed:{}", managed.getClass().getSimpleName(), e);
        }
    }
}

From source file:google.registry.ui.forms.FormFieldException.java

private String getFieldNameImpl() {
    checkState(!names.isEmpty(), "FormFieldException was thrown outside FormField infrastructure!");
    Iterator<Object> namesIterator = Lists.reverse(names).iterator();
    StringBuilder result = new StringBuilder((String) namesIterator.next());
    while (namesIterator.hasNext()) {
        Object name = namesIterator.next();
        if (name instanceof String) {
            result.append('.').append(name);
        } else if (name instanceof Integer) {
            result.append('[').append(name).append(']');
        } else {//from ww w. ja  v a2s .  c  om
            throw new AssertionError();
        }
    }
    return result.toString();
}

From source file:org.apache.samza.operators.impl.OperatorImplGraph.java

public void close() {
    List<OperatorImpl> initializationOrder = new ArrayList<>(operatorImpls.values());
    List<OperatorImpl> finalizationOrder = Lists.reverse(initializationOrder);
    finalizationOrder.forEach(OperatorImpl::close);
}

From source file:co.cask.cdap.logging.read.FileLogReader.java

@Override
public void getLogPrev(final LoggingContext loggingContext, final ReadRange readRange, final int maxEvents,
        final Filter filter, final Callback callback) {
    callback.init();/*w  w  w  .  ja  v  a  2 s  .  com*/
    try {
        Filter logFilter = new AndFilter(
                ImmutableList.of(LoggingContextHelper.createFilter(loggingContext), filter));

        NavigableMap<Long, Location> sortedFiles = fileMetaDataManager.listFiles(loggingContext);
        if (sortedFiles.isEmpty()) {
            return;
        }

        long fromTimeMs = readRange.getToMillis() - 1;

        LOG.trace("Using fromTimeMs={}, readRange={}", fromTimeMs, readRange);
        List<Location> filesInRange = getFilesInRange(sortedFiles, readRange.getFromMillis(),
                readRange.getToMillis());
        List<Collection<LogEvent>> logSegments = Lists.newLinkedList();
        AvroFileReader logReader = new AvroFileReader(schema);
        int count = 0;
        for (Location file : Lists.reverse(filesInRange)) {
            LOG.trace("Reading file {}", file.toURI());
            Collection<LogEvent> events = logReader.readLogPrev(file, logFilter, fromTimeMs, maxEvents - count);
            logSegments.add(events);
            count += events.size();
            if (count >= maxEvents) {
                break;
            }
        }

        for (LogEvent event : Iterables.concat(Lists.reverse(logSegments))) {
            callback.handle(event);
        }
    } catch (Throwable e) {
        LOG.error("Got exception: ", e);
        throw Throwables.propagate(e);
    }
}

From source file:com.google.gerrit.server.change.RelatedChangesSorter.java

private static Collection<PatchSetData> walkAncestors(ProjectControl ctl,
        ListMultimap<PatchSetData, PatchSetData> parents, PatchSetData start) throws OrmException {
    LinkedHashSet<PatchSetData> result = new LinkedHashSet<>();
    Deque<PatchSetData> pending = new ArrayDeque<>();
    pending.add(start);//ww  w  .  j a v  a2  s .co m
    while (!pending.isEmpty()) {
        PatchSetData psd = pending.remove();
        if (result.contains(psd) || !isVisible(psd, ctl)) {
            continue;
        }
        result.add(psd);
        pending.addAll(Lists.reverse(parents.get(psd)));
    }
    return result;
}

From source file:max.hubbard.bettershops.Menus.ShopMenus.TradeChoose.java

@Override
public void draw(final Player p, final int page, final Object... obj) {
    inv.clear();/*from  w w  w  .j  av a2s . com*/

    ItemStack item = new ItemStack(Material.STAINED_GLASS_PANE, 1, shop.getFrameColor());
    ItemMeta m = item.getItemMeta();
    m.setDisplayName(" ");
    item.setItemMeta(m);
    for (int i = 0; i < 18; i++) {
        inv.setItem(i, item);
    }

    ItemStack info = new ItemStack(Material.NAME_TAG);
    ItemMeta infoMeta = info.getItemMeta();
    infoMeta.setDisplayName(Language.getString("Trades", "Trades"));
    infoMeta.setLore(Arrays.asList(Language.getString("Trades", "ViewLore")));
    info.setItemMeta(infoMeta);

    ItemStack back = new ItemStack(Material.ARROW);
    ItemMeta backMeta = back.getItemMeta();
    backMeta.setDisplayName(Language.getString("MainGUI", "BackArrow"));
    back.setItemMeta(backMeta);
    ClickableItem backClick = new ClickableItem(new ShopItemStack(back), inv, p);
    backClick.addLeftClickAction(new LeftClickAction() {
        @Override
        public void onAction(InventoryClickEvent e) {
            shop.getMenu(MenuType.MAIN_BUYING).draw(p, page, obj);
        }
    });

    ItemStack arrow = new ItemStack(Material.ARROW);
    ItemMeta arrowMeta = arrow.getItemMeta();
    arrowMeta.setDisplayName(Language.getString("MainGUI", "NextPage"));
    arrow.setItemMeta(arrowMeta);
    ClickableItem arrowClick = new ClickableItem(new ShopItemStack(arrow), inv, p);
    arrowClick.addLeftClickAction(new LeftClickAction() {
        @Override
        public void onAction(InventoryClickEvent e) {
            draw(p, page + 1, obj);
        }
    });

    ItemStack barrow = new ItemStack(Material.ARROW);
    ItemMeta barrowMeta = barrow.getItemMeta();
    barrowMeta.setDisplayName(Language.getString("MainGUI", "PreviousPage"));
    barrow.setItemMeta(barrowMeta);
    ClickableItem barrowClick = new ClickableItem(new ShopItemStack(barrow), inv, p);
    barrowClick.addLeftClickAction(new LeftClickAction() {
        @Override
        public void onAction(InventoryClickEvent e) {
            draw(p, page - 1, obj);
        }
    });

    if (page > 1) {
        inv.setItem(1, barrow);
    }

    inv.setItem(0, back);

    inv.setItem(4, info);

    int maxPage = (int) Math.ceil((double) (shop.getHistory().getAllTransactions().size()) / 36);

    if (maxPage == 0) {
        maxPage = 1;
    }

    if (page != maxPage) {
        inv.setItem(8, arrow);
    }

    int j = 0;

    if (page > 1) {
        j = 36 * (page - 1);
    }

    int k = max.hubbard.bettershops.TradeManager.getTrades(shop).size();

    if (page != maxPage) {
        k = k - (j + (max.hubbard.bettershops.TradeManager.getTrades(shop).size() - 36));
    }

    List<Trade> list = max.hubbard.bettershops.TradeManager.getTrades(shop);

    List<Trade> l = Lists.reverse(list);

    if (list.size() > 0) {
        for (int i = j; i < k; i++) {
            final Trade trans = l.get(i);
            ItemStack it = trans.getIcon();
            ItemMeta sk = it.getItemMeta();

            sk.setDisplayName(Language.getString("Trades", "TradeId") + trans.getId());

            it.setItemMeta(sk);

            if (!trans.isTraded()) {
                if (inv.firstEmpty() > 0)
                    inv.setItem(inv.firstEmpty(), it);
            }

            ClickableItem tradeClick = new ClickableItem(new ShopItemStack(it), inv, p);
            if (!trans.isTraded()) {
                tradeClick.addLeftClickAction(new LeftClickAction() {
                    @Override
                    public void onAction(InventoryClickEvent e) {
                        if (!trans.isTraded()) {
                            shop.getMenu(MenuType.TRADE_CONFIRM).draw(p, page, trans);
                        } else {
                            draw(p, page);
                        }
                    }
                });
            }
        }
    }

    new BukkitRunnable() {

        @Override
        public void run() {
            p.openInventory(inv);
        }

    }.runTask(Bukkit.getPluginManager().getPlugin("BetterShops"));
}

From source file:com.google.devtools.moe.client.migrations.Migrator.java

/**
 * @param migrationConfig  the migration specification
 * @param db  the MOE db which will be used to find the last equivalence
 * @return a list of pending Migrations since last {@link RepositoryEquivalence} per
 *     migrationConfig//from ww  w.  j  av a2  s .  co  m
 */
public List<Migration> findMigrationsFromEquivalency(RepositoryType fromRepo, MigrationConfig migrationConfig,
        Db db) {

    Result equivMatch = matchEquivalences(db, fromRepo.revisionHistory(), migrationConfig.getToRepository());

    List<Revision> revisionsSinceEquivalence = Lists
            .reverse(equivMatch.getRevisionsSinceEquivalence().getBreadthFirstHistory());

    if (revisionsSinceEquivalence.isEmpty()) {
        ui.message("No revisions found since last equivalence for migration '%s'", migrationConfig.getName());
        return ImmutableList.of();
    }

    // TODO(user): Figure out how to report all equivalences.
    List<RepositoryEquivalence> equivalences = equivMatch.getEquivalences();
    if (equivalences.isEmpty()) {
        // Occurs if Moe magic is used on an empty target repo.
        throw new IllegalStateException(
                "Cannot migrate to an empty repository.  " + "Follow the steps in \"Make the Initial Push.\"");
    }
    RepositoryEquivalence lastEq = equivalences.get(0);
    ui.message("Found %d revisions in %s since equivalence (%s): %s", revisionsSinceEquivalence.size(),
            migrationConfig.getFromRepository(), lastEq, Joiner.on(", ").join(revisionsSinceEquivalence));

    if (migrationConfig.getSeparateRevisions()) {
        ImmutableList.Builder<Migration> migrations = ImmutableList.builder();
        for (Revision fromRev : revisionsSinceEquivalence) {
            migrations.add(Migration.create(migrationConfig.getName(), migrationConfig.getFromRepository(),
                    migrationConfig.getToRepository(), ImmutableList.of(fromRev), lastEq));
        }
        return migrations.build();
    } else {
        return ImmutableList.of(Migration.create(migrationConfig.getName(), migrationConfig.getFromRepository(),
                migrationConfig.getToRepository(), revisionsSinceEquivalence, lastEq));
    }
}

From source file:org.opencms.ade.containerpage.inherited.CmsInheritedContainerState.java

/**
 * Gets a list of container element beans which represent the state of the inherited container.<p>
 *
 * The container element beans returned will have additional information available via the getInheritanceInfo method.<p>
 *
 * @param includeHidden if true, hidden elements will be included in the result list
 *
 * @return the elements for this container state
 *///from  w  w  w  . j a v  a2  s .  com
public List<CmsContainerElementBean> getElements(boolean includeHidden) {

    if (m_parentConfigurations.isEmpty()) {
        return Collections.emptyList();
    }

    Map<String, CmsContainerElementBean> elementsByKey = new HashMap<String, CmsContainerElementBean>();
    for (CmsContainerConfiguration bean : m_parentConfigurations) {
        elementsByKey.putAll(bean.getNewElements());
    }

    List<CmsContainerElementBean> result = new ArrayList<CmsContainerElementBean>();

    CmsContainerConfiguration lastElement = m_parentConfigurations.get(m_parentConfigurations.size() - 1);
    Set<String> newKeys = new HashSet<String>();
    for (Map.Entry<String, CmsContainerElementBean> entry : lastElement.getNewElements().entrySet()) {
        String key = entry.getKey();
        newKeys.add(key);
    }
    Set<String> keysUsed = new HashSet<String>();
    Map<String, String> pathsByKey = new HashMap<String, String>();

    // STEP 1: Get first defined ordering
    List<String> ordering = null;
    for (CmsContainerConfiguration configuration : Lists.reverse(m_parentConfigurations)) {
        if (configuration.getOrdering() != null) {
            ordering = configuration.getOrdering();
            break;
        }
    }
    if (ordering == null) {
        ordering = new ArrayList<String>();
    }
    // STEP 2: Get elements which are referenced by the ordering
    for (String key : ordering) {
        CmsContainerElementBean element = elementsByKey.get(key);
        if ((element != null) && !keysUsed.contains(key)) {
            CmsContainerElementBean elementToAdd = CmsContainerElementBean.cloneWithSettings(element,
                    element.getIndividualSettings());
            CmsInheritanceInfo info = new CmsInheritanceInfo();
            info.setKey(key);
            elementToAdd.setInheritanceInfo(info);
            result.add(elementToAdd);
            keysUsed.add(key);
        }
    }
    // STEP 3: Add 'new' elements from parents; also fill pathsByKey
    for (int i = 0; i < (m_parentConfigurations.size()); i++) {
        CmsContainerConfiguration currentConfig = m_parentConfigurations.get(i);
        for (Map.Entry<String, CmsContainerElementBean> entry : currentConfig.getNewElementsInOrder()
                .entrySet()) {
            String key = entry.getKey();
            pathsByKey.put(key, currentConfig.getPath());
            if (!keysUsed.contains(key)) {
                CmsContainerElementBean elementToAdd = CmsContainerElementBean
                        .cloneWithSettings(entry.getValue(), entry.getValue().getIndividualSettings());
                CmsInheritanceInfo info = new CmsInheritanceInfo();
                info.setKey(key);
                elementToAdd.setInheritanceInfo(info);
                result.add(elementToAdd);
            }
        }
    }
    // STEP 4: Determine visibility and new-ness
    for (CmsContainerElementBean resultElement : result) {
        CmsInheritanceInfo info = resultElement.getInheritanceInfo();
        String key = info.getKey();
        List<Boolean> visibilities = getVisibilities(key);
        computeVisibility(visibilities, info);
        info.setIsNew(newKeys.contains(info.getKey()));
    }

    List<CmsContainerElementBean> resultWithoutHidden = new ArrayList<CmsContainerElementBean>();
    List<CmsContainerElementBean> hiddenElements = new ArrayList<CmsContainerElementBean>();
    for (CmsContainerElementBean resultElement : result) {
        CmsInheritanceInfo info = resultElement.getInheritanceInfo();
        if (!info.isVisible()) {
            hiddenElements.add(resultElement);
        } else {
            resultWithoutHidden.add(resultElement);
        }
    }
    result = resultWithoutHidden;
    if (includeHidden) {
        result.addAll(hiddenElements);
    }
    for (CmsContainerElementBean elementBean : result) {
        CmsInheritanceInfo info = elementBean.getInheritanceInfo();
        String path = pathsByKey.get(info.getKey());
        info.setPath(path);
    }

    return result;
}

From source file:beans.PointsImpl.java

@Override
public CompletionStage<List<Point>> getNearestPoints(Point from, int k) {
    CompletableFuture<Void> checkCountFuture = new CompletableFuture<>();
    collection.count((count, throwable) -> {
        if (throwable == null) {
            if (count < k) {
                checkCountFuture.completeExceptionally(
                        KTooLargeError.newBuilder().setValue("k is too large").setK(k).build());
            } else {
                checkCountFuture.complete(null);
            }/*from w  ww.  j a  v a  2s .  co m*/
        } else {
            checkCountFuture.completeExceptionally(throwable);
        }
    });

    return checkCountFuture.thenCompose(nothing -> {
        CompletableFuture<Void> insertQueueFuture = new CompletableFuture<>();
        PriorityQueue<Point> queue = new PriorityQueue<>(new DescendingPointComparator(from));
        collection.find().map(document -> RecordConverter.toRecord(Point.class, document)).forEach(point -> {
            queue.add(point);
            if (queue.size() > k) {
                queue.poll();
            }
        }, getSingleResultCallback(insertQueueFuture));

        return insertQueueFuture.thenApply(nothing2 -> {
            List<Point> points = new ArrayList<>(queue.size());
            while (!queue.isEmpty()) {
                points.add(queue.poll());
            }
            return Lists.reverse(points);
        });
    });
}