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.eucalyptus.util.Exceptions.java
/** * Get the message closest to the cause. * * @param throwable The exception/*w w w . ja v a 2 s. com*/ * @return The message or null if none */ public static String getCauseMessage(final Throwable throwable) { return FluentIterable.from(Lists.reverse(causes(throwable))).transform(message()) .firstMatch(Predicates.notNull()).orNull(); }
From source file:gobblin.writer.FsDataWriter.java
/** * Create the staging output file and an {@link OutputStream} to write to the file. * * @return an {@link OutputStream} to write to the staging file * @throws IOException if it fails to create the file and the {@link OutputStream} */// w w w. j a v a 2 s . co m protected OutputStream createStagingFileOutputStream() throws IOException { OutputStream out = this.fs.create(this.stagingFile, this.filePermission, true, this.bufferSize, this.replicationFactor, this.blockSize, null); // encoders need to be attached to the stream in reverse order since we should write to the // innermost encoder first for (StreamCodec encoder : Lists.reverse(getEncoders())) { out = encoder.encodeOutputStream(out); } return this.closer.register(out); }
From source file:ro.cosu.vampires.server.actors.StatsProcessor.java
private List<String> getKeysForMetric(String clientId, String metric) { String instanceType = getInstanceType(clientId); Resource.ProviderType providerType = getProviderType(clientId); // return the keys in reverse order: most specific (longest) first return Lists.reverse(Lists.newArrayList(metric, Joiner.on(":").join(metric, providerType), Joiner.on(":").join(metric, providerType, instanceType), Joiner.on(":").join(metric, providerType, instanceType, clientId))); }
From source file:org.apache.ctakes.temporal.ae.BackwardsTimeAnnotator.java
@Override public void process(JCas jCas, Segment segment) throws AnalysisEngineProcessException { // classify tokens within each sentence for (Sentence sentence : JCasUtil.selectCovered(jCas, Sentence.class, segment)) { List<BaseToken> tokens = JCasUtil.selectCovered(jCas, BaseToken.class, sentence); // during training, the list of all outcomes for the tokens List<String> outcomes; if (this.isTraining()) { List<TimeMention> times = JCasUtil.selectCovered(jCas, TimeMention.class, sentence); outcomes = this.timeChunking.createOutcomes(jCas, tokens, times); outcomes = Lists.reverse(outcomes); }//from w ww . j ava 2s. c om // during prediction, the list of outcomes predicted so far else { outcomes = new ArrayList<String>(); } tokens = Lists.reverse(tokens); // extract features for all tokens int tokenIndex = -1; for (BaseToken token : tokens) { ++tokenIndex; List<Feature> features = new ArrayList<Feature>(); // features from token attributes for (FeatureExtractor1 extractor : this.tokenFeatureExtractors) { features.addAll(extractor.extract(jCas, token)); } // features from surrounding tokens for (CleartkExtractor extractor : this.contextFeatureExtractors) { features.addAll(extractor.extractWithin(jCas, token, sentence)); } // features from previous classifications int nPreviousClassifications = 2; for (int i = nPreviousClassifications; i > 0; --i) { int index = tokenIndex - i; String previousOutcome = index < 0 ? "O" : outcomes.get(index); features.add(new Feature("PreviousOutcome_" + i, previousOutcome)); } // features from dominating parse tree // for(FeatureExtractor1 extractor : this.parseFeatureExtractors){ BaseToken startToken = token; for (int i = tokenIndex - 1; i >= 0; --i) { String outcome = outcomes.get(i); if (outcome.equals("O")) { break; } startToken = tokens.get(i); } features.addAll(parseExtractor.extract(jCas, startToken.getBegin(), token.getEnd())); // } // if training, write to data file if (this.isTraining()) { String outcome = outcomes.get(tokenIndex); this.dataWriter.write(new Instance<String>(outcome, features)); } // if predicting, add prediction to outcomes else { outcomes.add(this.classifier.classify(features)); } } // during prediction, convert chunk labels to times and add them to the CAS if (!this.isTraining()) { tokens = Lists.reverse(tokens); outcomes = Lists.reverse(outcomes); JCas timexCas; try { timexCas = jCas.getView(timexView); } catch (CASException e) { throw new AnalysisEngineProcessException(e); } this.timeChunking.createChunks(timexCas, tokens, outcomes); } } }
From source file:cuchaz.enigma.analysis.TranslationIndex.java
public ClassEntry resolveSuperclass(Entry entry, boolean checkSuperclassBeforeChild) { // Default case if (!checkSuperclassBeforeChild) return resolveSuperclass(entry); // Save the original entry Entry originalEntry = entry;/* w w w . j a v a 2 s. co m*/ // Get all possible superclasses and reverse the list List<ClassEntry> superclasses = Lists.reverse(getAncestry(originalEntry.getOwnerClassEntry())); boolean existInEntry = false; for (ClassEntry classEntry : superclasses) { entry = entry.updateOwnership(classEntry); existInEntry = entryExists(entry); // Check for possible entry in interfaces of superclasses ClassEntry interfaceEntry = resolveInterface(entry); if (interfaceEntry != null) return interfaceEntry; if (existInEntry) break; } // Doesn't exists in superclasses? check the child or return null if (!existInEntry) return !entryExists(originalEntry) ? null : originalEntry.getOwnerClassEntry(); return entry.getOwnerClassEntry(); }
From source file:kr.co.bitnine.octopus.engine.calcite.CalciteSchema.java
/** * Returns the path of an object in this schema. *//*w w w .j av a 2 s . com*/ public final List<String> path(String objName) { final List<String> list = new ArrayList<>(); if (objName != null) { list.add(objName); } for (CalciteSchema s = this; s != null; s = s.parent) { if (s.parent != null || !s.name.equals("")) { // Omit the root schema's name from the path if it's the empty string, // which it usually is. list.add(s.name); } } return ImmutableList.copyOf(Lists.reverse(list)); }
From source file:com.google.gerrit.acceptance.GitUtil.java
public static Optional<String> getChangeId(TestRepository<?> tr, ObjectId id) throws IOException { RevCommit c = tr.getRevWalk().parseCommit(id); tr.getRevWalk().parseBody(c);/*from ww w . jav a2 s.c om*/ return Lists.reverse(c.getFooterLines(FooterConstants.CHANGE_ID)).stream().findFirst(); }
From source file:com.searchcode.app.util.LoggerWrapper.java
public synchronized List<String> getWarningLogs() { List<String> values = new ArrayList<>(); try {//www . j a v a2s . c o m values = new ArrayList(this.warningRecentCache); values = Lists.reverse(values); } catch (ArrayIndexOutOfBoundsException ignored) { } return values; }
From source file:edu.buaa.satla.analysis.core.arg.ErrorPathShrinker.java
private void handleMultiEdge(MultiEdge cfaEdge) { for (final CFAEdge innerEdge : Lists.reverse(cfaEdge.getEdges())) { currentCFAEdge = innerEdge;/*w ww . java 2 s . c o m*/ handleSimpleEdge(innerEdge); } currentCFAEdge = cfaEdge; // reset edge }
From source file:org.eclipse.emf.compare.rcp.ui.internal.mergeviewer.item.impl.ResourceAttachmentChangeMergeViewerItem.java
/** * Creates insertion points for the given list of IMergeViewerItem corresponding to the given list of * ResourceAttachmentChange./*from www . j a va 2 s .c om*/ * * @param values * the given list of IMergeViewerItem. * @param racs * the givel list of ResourceAttachmentChange * @return the given list of IMergeViewerItem with additional insertion points. */ private List<? extends IMergeViewerItem> createInsertionPoints(final List<? extends IMergeViewerItem> values, final List<ResourceAttachmentChange> racs) { List<IMergeViewerItem> ret = newArrayList(values); for (ResourceAttachmentChange diff : Lists.reverse(racs)) { boolean rightToLeft = (getSide() == IMergeViewer.MergeViewerSide.LEFT); Comparison comparison = getComparison(); Object left = MergeViewerUtil.getValueFromResourceAttachmentChange(diff, comparison, IMergeViewer.MergeViewerSide.LEFT); Object right = MergeViewerUtil.getValueFromResourceAttachmentChange(diff, comparison, IMergeViewer.MergeViewerSide.RIGHT); DifferenceSource source = diff.getSource(); DifferenceKind kind = diff.getKind(); DifferenceState state = diff.getState(); boolean b1 = source == DifferenceSource.LEFT && kind == DifferenceKind.DELETE && getSide() == MergeViewerSide.LEFT && DifferenceState.MERGED != state; boolean b2 = source == DifferenceSource.LEFT && kind == DifferenceKind.ADD && getSide() == MergeViewerSide.RIGHT && DifferenceState.MERGED != state; boolean b3 = source == DifferenceSource.RIGHT && kind == DifferenceKind.ADD && getSide() == MergeViewerSide.LEFT && DifferenceState.MERGED != state; boolean b4 = source == DifferenceSource.RIGHT && kind == DifferenceKind.DELETE && getSide() == MergeViewerSide.RIGHT && DifferenceState.MERGED != state; boolean b5 = DifferenceState.MERGED == state && source == DifferenceSource.LEFT && kind == DifferenceKind.ADD && right == null; boolean b6 = DifferenceState.MERGED == state && source == DifferenceSource.LEFT && kind == DifferenceKind.DELETE && left == null; boolean b7 = DifferenceState.MERGED == state && source == DifferenceSource.RIGHT && kind == DifferenceKind.ADD && left == null; boolean b8 = DifferenceState.MERGED == state && source == DifferenceSource.RIGHT && kind == DifferenceKind.DELETE && right == null; // do not duplicate insertion point for pseudo add conflict // so we must only create one for pseudo delete conflict boolean b9 = diff.getConflict() == null || (diff.getConflict().getKind() != ConflictKind.PSEUDO || kind == DifferenceKind.DELETE); if ((b1 || b2 || b3 || b4 || b5 || b6 || b7 || b8) && b9) { Object ancestor = MergeViewerUtil.getValueFromResourceAttachmentChange(diff, comparison, IMergeViewer.MergeViewerSide.ANCESTOR); if (left != null && MergeViewerUtil.getResource(comparison, IMergeViewer.MergeViewerSide.LEFT, diff) == null) { left = null; } if (right != null && MergeViewerUtil.getResource(comparison, IMergeViewer.MergeViewerSide.RIGHT, diff) == null) { right = null; } if (ancestor != null && MergeViewerUtil.getResource(comparison, IMergeViewer.MergeViewerSide.ANCESTOR, diff) == null) { ancestor = null; } if (b5 || b8) { left = null; } if (b6 || b7) { right = null; } IMergeViewerItem insertionPoint = new MergeViewerItem.Container(comparison, diff, left, right, ancestor, getSide(), getAdapterFactory()); final int insertionIndex; if (left == null && right == null && ancestor != null) { Resource resource = MergeViewerUtil.getResource(comparison, IMergeViewer.MergeViewerSide.ANCESTOR, diff); List<EObject> contents = resource.getContents(); insertionIndex = contents.indexOf(ancestor); } else { insertionIndex = Math.min(findInsertionIndex(diff, rightToLeft), ret.size()); } // offset the insertion by the number of previous insertion points in the list // Can not b improved by keeping the number of created insertion points because the given // "values" parameter may already contains some insertion points. int realIndex = 0; for (int index = 0; index < insertionIndex && realIndex < ret.size(); realIndex++) { if (!ret.get(realIndex).isInsertionPoint()) { index++; } } ret.add(realIndex, insertionPoint); } } return ret; }