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