Example usage for com.google.common.collect TreeRangeSet create

List of usage examples for com.google.common.collect TreeRangeSet create

Introduction

In this page you can find the example usage for com.google.common.collect TreeRangeSet create.

Prototype

public static <C extends Comparable<?>> TreeRangeSet<C> create() 

Source Link

Document

Creates an empty TreeRangeSet instance.

Usage

From source file:org.rf.ide.core.testdata.model.table.keywords.names.EmbeddedKeywordNamesSupport.java

@VisibleForTesting
static RangeSet<Integer> findEmbeddedArgumentsRanges(final String definitionName) {
    final RangeSet<Integer> varRanges = TreeRangeSet.create();

    if (definitionName.isEmpty()) {
        return varRanges;
    }//ww  w  .ja v a2s . c  om
    int varStart = -1;
    int currentIndex = 0;
    int currentState = 0;

    while (currentIndex < definitionName.length()) {
        final char character = definitionName.charAt(currentIndex);

        if (currentState == KeywordDfaState.START_STATE) {
            currentState = character == '$' ? KeywordDfaState.VAR_DOLLAR_DETECTED : KeywordDfaState.START_STATE;

        } else if (currentState == KeywordDfaState.VAR_DOLLAR_DETECTED) {
            currentState = character == '{' ? KeywordDfaState.VAR_START_DETECTED : KeywordDfaState.START_STATE;

        } else if (currentState == KeywordDfaState.VAR_START_DETECTED) {
            varStart = currentIndex - 2;
            if (character == '}') {
                currentState = KeywordDfaState.START_STATE;
            } else if (character == '\\') {
                currentState = KeywordDfaState.IN_VAR_ESCAPING;
            } else {
                currentState = KeywordDfaState.IN_VAR_NO_ESCAPE_CURRENTLY;
            }

        } else if (currentState == KeywordDfaState.IN_VAR_ESCAPING) {
            currentState = KeywordDfaState.IN_VAR_NO_ESCAPE_CURRENTLY;

        } else if (currentState == KeywordDfaState.IN_VAR_NO_ESCAPE_CURRENTLY) {
            if (character == '}') {
                varRanges.add(Range.closed(varStart, currentIndex));
                currentState = KeywordDfaState.START_STATE;
            } else if (character == '\\') {
                currentState = KeywordDfaState.IN_VAR_ESCAPING;
            } else {
                currentState = KeywordDfaState.IN_VAR_NO_ESCAPE_CURRENTLY;
            }

        } else {
            throw new IllegalStateException("Unrecognized state");
        }
        currentIndex++;
    }
    return varRanges;
}

From source file:edu.cmu.lti.oaqa.baseqa.abstract_query.TokenConceptAbstractQueryGenerator.java

@Override
public void process(JCas jcas) throws AnalysisEngineProcessException {
    Collection<Concept> concepts = TypeUtil.getConcepts(jcas);
    List<QueryConcept> qconcepts = ConceptAbstractQueryGenerator.createQueryConceptsFromConceptMentions(jcas,
            concepts, useType, useWeight);
    // filter tokens that are covered by concept mentions
    RangeSet<Integer> cmentionRanges = TreeRangeSet.create();
    concepts.stream().map(TypeUtil::getConceptMentions).flatMap(Collection::stream)
            .map(cmention -> Range.closedOpen(cmention.getBegin(), cmention.getEnd()))
            .forEach(cmentionRanges::add);
    // create an aquery using all tokens with POS in posTags set
    List<Token> tokens = TypeUtil.getOrderedTokens(jcas).stream()
            .filter(token -> !cmentionRanges.encloses(Range.closedOpen(token.getBegin(), token.getEnd())))
            .collect(toList());/*from   w  ww  .j  a  va  2 s.  c o  m*/
    List<QueryConcept> qconceptTokens = TokenSelectionAbstractQueryGenerator.createQueryConceptsFromTokens(jcas,
            tokens, posTags, stoplist);
    qconceptTokens.addAll(qconcepts);
    AbstractQuery aquery = TypeFactory.createAbstractQuery(jcas, qconceptTokens);
    aquery.addToIndexes();
    // create a backup aquery using only nouns
    List<QueryConcept> qconceptNouns = TokenSelectionAbstractQueryGenerator.createQueryConceptsFromTokens(jcas,
            tokens, nounTags, stoplist);
    qconceptNouns.addAll(qconcepts);
    AbstractQuery aqueryNoun = TypeFactory.createAbstractQuery(jcas, qconceptNouns);
    aqueryNoun.addToIndexes();
}

From source file:org.eclipse.m2m.internal.qvt.oml.tools.coverage.ui.TransformationCoverageModel.java

public RangeSet<Integer> getUntouchedRanges() {
    if (untouchedRanges == null) {
        untouchedRanges = TreeRangeSet.create();
        for (NodeCoverageModel nodeModel : getUntouchedExpressionNodes()) {
            untouchedRanges.add(Range.closed(nodeModel.getStart(), nodeModel.getEnd() + 1));
        }/*from   www. j  a  va  2  s .c  o  m*/
    }
    return untouchedRanges;
}

From source file:com.google.errorprone.bugpatterns.javadoc.UnescapedEntity.java

private Description handle(@Nullable DocTreePath path, VisitorState state) {
    if (path == null) {
        return NO_MATCH;
    }//from  www .j  a v  a  2  s.c o  m
    RangesFinder rangesFinder = new RangesFinder(state);
    rangesFinder.scan(path, null);
    Comment comment = ((DCDocComment) path.getDocComment()).comment;
    Matcher matcher = GENERIC_PATTERN.matcher(comment.getText());
    RangeSet<Integer> generics = TreeRangeSet.create();
    while (matcher.find()) {
        generics.add(
                Range.closedOpen(comment.getSourcePos(matcher.start()), comment.getSourcePos(matcher.end())));
    }
    RangeSet<Integer> emittedFixes = fixGenerics(generics, rangesFinder.preTags, rangesFinder.dontEmitCodeFix,
            state);
    new EntityChecker(state, generics, rangesFinder.preTags, emittedFixes).scan(path, null);
    return NO_MATCH;
}

From source file:com.google.testing.pogen.parser.template.TemplateParser.java

/**
 * Returns a {@link RangeSet} of indexes between the start and the end tags
 * for non-nested tags.//from  www . j av  a2 s . c  om
 * 
 * @param text
 *            the string to be parsed
 * @param startPattern
 *            the regular expression of start tags to find
 * @param endPattern
 *            the regular expression of end tags to find
 * @return the {@link RangeSet} of the indexes between the start and the end
 *         tags
 * @throws TemplateParseException
 *             if the specified template is in bad format where broken pairs
 *             of start and end tags appear
 */
protected static RangeSet<Integer> getIndexRangesOfNonNestedTags(String text, Pattern startPattern,
        Pattern endPattern) throws TemplateParseException {

    RangeSet<Integer> rangeSet = TreeRangeSet.create();

    List<Integer> startIndexes = getMatchedIndexes(text, startPattern);
    List<Integer> endIndexes = getMatchedIndexes(text, endPattern);
    // Check whether all start tags and end tags are paired correctly
    if (startIndexes.size() != endIndexes.size()) {
        throw new TemplateParseException(
                String.format("There are broken pairs of start and end tags (#start tags: %d, #end tags: %d)",
                        startIndexes.size(), endIndexes.size()));
    }

    for (int i = 0; i < startIndexes.size(); i++) {
        rangeSet.add(Range.closedOpen(startIndexes.get(i), endIndexes.get(i)));
    }
    return rangeSet;
}

From source file:com.yahoo.bard.webservice.metadata.DataSourceMetadata.java

/**
 * Build the range set of intervals for the entries.
 *
 * @param entries  Entries to build the intervals for
 * @param interval  Interval to add to each of the entries
 * @param container  Map into which to build the interval sets
 *///www .  ja v  a2 s. co m
private static void buildRangeSet(List<String> entries, Interval interval,
        Map<String, RangeSet<DateTime>> container) {
    entries.stream().map(entry -> container.computeIfAbsent(entry, ignored -> TreeRangeSet.create()))
            .forEach(set -> set.add(Range.closedOpen(interval.getStart(), interval.getEnd())));
}

From source file:net.hydromatic.foodbench.Main.java

private static RangeSet<Integer> parseInts(String idsProperty) {
    RangeSet<Integer> idSet = TreeRangeSet.create();
    if (idsProperty == null) {
        idsProperty = "";
    }/*w w w.j  a  va  2s  .  c  o m*/
    if (idsProperty.isEmpty() || idsProperty.startsWith("-")) {
        idSet.add(Range.<Integer>all());
    }
    if (!idsProperty.isEmpty()) {
        for (String id : idsProperty.split(",")) {
            String[] split2 = id.split("-");
            if (split2.length != 2) {
                if (id.endsWith("-")) {
                    // 10- means "10 onwards"
                    idSet.add(Range.atLeast(Integer.parseInt(id.substring(0, id.length() - 1))));
                } else {
                    idSet.add(Range.singleton(Integer.parseInt(id)));
                }
            } else if (split2[0].equals("")) {
                // -10 means "not 10"
                idSet.remove(Range.singleton(Integer.parseInt(split2[1])));
            } else {
                int min = Integer.parseInt(split2[0]);
                int max = Integer.parseInt(split2[1]);
                idSet.add(Range.closed(min, max));
            }
        }
    }
    return idSet;
}

From source file:com.rockhoppertech.music.examples.Guava.java

public static void goofaround() {
    MIDITrack track = MIDITrackBuilder.create().noteString("C D E").sequential().build();

    // http://docs.guava-libraries.googlecode.com/git-history/release12/javadoc/com/google/common/collect/FluentIterable.html#filter(com.google.common.base.Predicate)

    ImmutableList<MIDINote> notes = FluentIterable.from(track).transform(new AddFunction(1)).limit(10).toList();

    for (MIDINote note : notes) {
        logger.debug("{}", note);
    }//w  ww .  jav  a  2 s  .c  o m

    RangeSet<Double> rangeSet = TreeRangeSet.create();
    rangeSet.add(Range.closed(1d, 10d));
    rangeSet.add(Range.closed(11d, 20d));
    for (Range<Double> r : rangeSet.asRanges()) {
        logger.debug("{}", r);
    }
    logger.debug("span {}", rangeSet.span());
    logger.debug("contains {}", rangeSet.contains(20d));
    logger.debug("contains {}", rangeSet.contains(20.1));

}

From source file:com.google.errorprone.bugpatterns.javadoc.UnescapedEntity.java

private RangeSet<Integer> fixGenerics(RangeSet<Integer> generics, RangeSet<Integer> preTags,
        RangeSet<Integer> dontEmitCodeFix, VisitorState state) {
    RangeSet<Integer> emittedFixes = TreeRangeSet.create();
    for (Range<Integer> range : generics.asRanges()) {
        if (emittedFixes.intersects(range) || dontEmitCodeFix.intersects(range)) {
            continue;
        }//  ww w  .  ja  v  a 2  s.  c  o m
        Range<Integer> regionToWrap = preTags.rangeContaining(range.lowerEndpoint());
        if (regionToWrap == null) {
            regionToWrap = range;
        }
        emittedFixes.add(regionToWrap);
        state.reportMatch(
                buildDescription(getDiagnosticPosition(range.lowerEndpoint(), state.getPath().getLeaf()))
                        .setMessage(
                                "This looks like a type with type parameters. The < and > characters here will "
                                        + "be interpreted as HTML, which can be avoided by wrapping it in a "
                                        + "{@code } tag.")
                        .addFix(wrapInCodeTag(regionToWrap)).build());
    }
    return emittedFixes;
}

From source file:org.apache.druid.query.filter.SelectorDimFilter.java

@Override
public RangeSet<String> getDimensionRangeSet(String dimension) {
    if (!Objects.equals(getDimension(), dimension) || getExtractionFn() != null) {
        return null;
    }/*from www.  j  ava  2 s  .  c  om*/
    RangeSet<String> retSet = TreeRangeSet.create();
    String valueEquivalent = NullHandling.nullToEmptyIfNeeded(value);
    if (valueEquivalent == null) {
        // Case when SQL compatible null handling is enabled
        // Nulls are less than empty String in segments
        retSet.add(Range.lessThan(""));
    } else {
        retSet.add(Range.singleton(valueEquivalent));
    }
    return retSet;
}