List of usage examples for com.google.common.collect Lists reverse
@CheckReturnValue public static <T> List<T> reverse(List<T> list)
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); }); }); }