Example usage for com.google.common.collect RangeSet contains

List of usage examples for com.google.common.collect RangeSet contains

Introduction

In this page you can find the example usage for com.google.common.collect RangeSet contains.

Prototype

boolean contains(C value);

Source Link

Document

Determines whether any of this range set's member ranges contains value .

Usage

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

public static List<String> getCommandsInRanges(TemplateParser parser, String template,
        @Nullable RangeSet<Integer> ranges) throws TemplateParseException {
    List<HtmlTagInfo> tags = parser.parseTagsContainingVariables(template, TreeRangeSet.<Integer>create());
    List<String> commands = Lists.newArrayList();
    for (HtmlTagInfo tag : tags) {
        for (VariableInfo var : tag.getVariableInfos()) {
            if (ranges == null || ranges.contains(var.getStartIndex())) {
                commands.add(var.getName());
            }//  w  w w  .j av a 2s .c  o  m
        }
    }
    Collections.sort(commands);
    return commands;
}

From source file:org.apache.cassandra.cql3.restrictions.TokenFilter.java

/**
 * Filter out the values for which the tokens are not included within the specified range.
 *
 * @param tokens the tokens range//from w w w . j ava 2s. co m
 * @param values the restricted values
 * @return the values for which the tokens are not included within the specified range.
 */
private static List<ByteBuffer> filterWithRangeSet(RangeSet<Token> tokens, List<ByteBuffer> values) {
    List<ByteBuffer> remaining = new ArrayList<>();

    for (ByteBuffer value : values) {
        Token token = partitioner.getToken(value);

        if (!tokens.contains(token))
            continue;

        remaining.add(value);
    }
    return remaining;
}

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

private static String substituteVariablesWithRegex(final String definitionName, final boolean ignoreCase) {
    final StringBuilder wholeRegex = new StringBuilder();

    final RangeSet<Integer> varRanges = findEmbeddedArgumentsRanges(definitionName);

    StringBuilder exactWordPatternRegex = new StringBuilder();
    int i = 0;/*from ww w  .j  a  va  2  s.c o m*/
    while (i < definitionName.length()) {
        if (varRanges.contains(i)) {
            if (exactWordPatternRegex.length() > 0) {
                final String exactWordPattern = exactWordPatternRegex.toString();
                wholeRegex
                        .append(Pattern.quote(ignoreCase ? exactWordPattern.toLowerCase() : exactWordPattern));
                exactWordPatternRegex = new StringBuilder();
            }

            final Range<Integer> varRange = varRanges.rangeContaining(i);
            final String internalRegex = getEmbeddedArgumentRegex(definitionName, varRange);
            wholeRegex.append(internalRegex);
            i = varRange.upperEndpoint() + 1;
        } else {
            exactWordPatternRegex.append(definitionName.charAt(i));
            i++;
        }
    }
    if (exactWordPatternRegex.length() > 0) {
        final String exactWordPattern = exactWordPatternRegex.toString();
        wholeRegex.append(Pattern.quote(ignoreCase ? exactWordPattern.toLowerCase() : exactWordPattern));
    }
    return wholeRegex.toString();
}

From source file:com.google.googlejavaformat.java.ModifierOrderer.java

/**
 * Reorders all modifiers in the given text and within the given character ranges to be in JLS
 * order./*from  w w  w .  ja  v a 2s.  com*/
 */
static JavaInput reorderModifiers(JavaInput javaInput, Collection<Range<Integer>> characterRanges)
        throws FormatterException {
    if (javaInput.getTokens().isEmpty()) {
        // There weren't any tokens, possible because of a lexing error.
        // Errors about invalid input will be reported later after parsing.
        return javaInput;
    }
    RangeSet<Integer> tokenRanges = javaInput.characterRangesToTokenRanges(characterRanges);
    Iterator<? extends Token> it = javaInput.getTokens().iterator();
    TreeRangeMap<Integer, String> replacements = TreeRangeMap.create();
    while (it.hasNext()) {
        Token token = it.next();
        if (!tokenRanges.contains(token.getTok().getIndex())) {
            continue;
        }
        Modifier mod = asModifier(token);
        if (mod == null) {
            continue;
        }

        List<Token> modifierTokens = new ArrayList<>();
        List<Modifier> mods = new ArrayList<>();

        int begin = token.getTok().getPosition();
        mods.add(mod);
        modifierTokens.add(token);

        int end = -1;
        while (it.hasNext()) {
            token = it.next();
            mod = asModifier(token);
            if (mod == null) {
                break;
            }
            mods.add(mod);
            modifierTokens.add(token);
            end = token.getTok().getPosition() + token.getTok().length();
        }

        if (!Ordering.natural().isOrdered(mods)) {
            Collections.sort(mods);
            StringBuilder replacement = new StringBuilder();
            for (int i = 0; i < mods.size(); i++) {
                if (i > 0) {
                    addTrivia(replacement, modifierTokens.get(i).getToksBefore());
                }
                replacement.append(mods.get(i).toString());
                if (i < (modifierTokens.size() - 1)) {
                    addTrivia(replacement, modifierTokens.get(i).getToksAfter());
                }
            }
            replacements.put(Range.closedOpen(begin, end), replacement.toString());
        }
    }
    return applyReplacements(javaInput, replacements);
}

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);
    }/*from  w  ww  .  j  a v  a 2s  . 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:org.rf.ide.core.testdata.model.table.keywords.names.EmbeddedKeywordNamesSupport.java

private static int startsWith(final String definitionName, final String occurrenceNamePrefix) {
    if (definitionName.startsWith(occurrenceNamePrefix)) {
        return occurrenceNamePrefix.length();
    } else if (definitionName.indexOf('$') == -1) {
        return -1;
    }/*  ww w .  j  av  a2s . c o  m*/

    final RangeSet<Integer> varRanges = findEmbeddedArgumentsRanges(definitionName);

    int i = definitionName.length();
    while (i >= 0) {
        final String shortenedDefinition = definitionName.substring(0, i);
        final boolean matches = matchesIgnoreCase(shortenedDefinition, occurrenceNamePrefix);
        if (matches) {
            return i;
        }

        i--;
        if (varRanges.contains(i)) {
            final Range<Integer> range = varRanges.rangeContaining(i);
            i = range.lowerEndpoint();
        }
    }
    return -1;
}

From source file:org.jpmml.evaluator.ArgumentUtil.java

@SuppressWarnings(value = "fallthrough")
static public boolean isValid(DataField dataField, MiningField miningField, Object value) {

    if (value == null) {
        return false;
    }//from w w  w.ja v  a 2 s.com

    DataType dataType = dataField.getDataType();

    List<Interval> intervals = dataField.getIntervals();

    OpType opType = miningField.getOptype();
    if (opType == null) {
        opType = dataField.getOptype();
    }

    switch (opType) {
    case CONTINUOUS: {
        // "If intervals are present, then a value that is outside the intervals is considered invalid"
        if (intervals.size() > 0) {
            RangeSet<Double> validRanges = CacheUtil.getValue(dataField, ArgumentUtil.validRangeCache);

            Double doubleValue = (Double) TypeUtil.parseOrCast(DataType.DOUBLE, value);

            return validRanges.contains(doubleValue);
        }
    }
    // Falls through
    case CATEGORICAL:
    case ORDINAL: {
        // "Intervals are not allowed for non-continuous fields"
        if (intervals.size() > 0) {
            throw new InvalidFeatureException(dataField);
        }

        int validValueCount = 0;

        List<Value> fieldValues = dataField.getValues();
        for (Value fieldValue : fieldValues) {
            Value.Property property = fieldValue.getProperty();

            switch (property) {
            case VALID: {
                validValueCount += 1;

                boolean equals = equals(dataType, value, fieldValue.getValue());
                if (equals) {
                    return true;
                }
            }
                break;
            case INVALID:
            case MISSING: {
                boolean equals = equals(dataType, value, fieldValue.getValue());
                if (equals) {
                    return false;
                }
            }
                break;
            default:
                throw new UnsupportedFeatureException(fieldValue, property);
            }
        }

        // "If a field contains at least one Value element where the value of property is valid, then the set of Value elements completely defines the set of valid values"
        if (validValueCount > 0) {
            return false;
        }

        // "Any value is valid by default"
        return true;
    }
    default:
        throw new UnsupportedFeatureException(miningField, opType);
    }
}

From source file:org.eclipse.fx.ui.controls.styledtext.internal.VFlow.java

private void triggerRelease(RangeSet<Integer> range) {
    if (range.contains(Integer.valueOf(Integer.MAX_VALUE))
            || range.contains(Integer.valueOf(Integer.MIN_VALUE))) {
        return;/*from   w w w  . j  av a  2 s  . com*/
    }
    range.asRanges().stream().flatMapToInt(VFlow::toIntStream).forEach(index -> releaseNode(index));
}

From source file:org.eclipse.fx.ui.controls.styledtext.internal.VerticalLineFlow.java

private void prepareNodes(RangeSet<Integer> range) {
    if (range == null)
        return;/*from   w w w . j  av  a2 s  .c  o  m*/

    // release invisible nodes
    Iterator<Entry<Integer, Node>> iterator = this.activeNodes.entrySet().iterator();
    while (iterator.hasNext()) {
        Entry<Integer, Node> entry = iterator.next();
        Integer index = entry.getKey();
        if (!range.contains(index)) {
            releaseNode(entry.getValue());
            iterator.remove();
        }
    }

    // prepare range nodes
    range.asRanges().forEach(r -> ContiguousSet.create(r, DiscreteDomain.integers())
            .forEach(index -> prepareNode(index.intValue())));

}

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

@Override
protected RangeSet<Integer> parseRepeatedPart(String template) throws TemplateParseException {
    // TODO(kazuu): We parse CALL_PATTERNs only in 1 file. We can't detect
    // repeated pattern for calling other template.

    // Get a set of merged ranges which locates the inner parts of
    // for/foreach
    RangeSet<Integer> forRanges = parseForTags(template);

    Map<String, Range<Integer>> templateRanges = parseTemplateTags(template);
    List<StringWithIndex> calls = getMatchedStringAndIndexes(template, CALL_PATTERN, 1);

    boolean added;
    do {//w  w  w  .j  av a2 s. c o  m
        added = false;
        for (int i = calls.size() - 1; i >= 0; i--) {
            StringWithIndex nameAndIndex = calls.get(i);
            if (forRanges.contains(nameAndIndex.getIndex())) {
                // If a template definition is called from another repeated part, it's
                // treated as repeated part
                forRanges.add(templateRanges.get(nameAndIndex.getString()));
                calls.remove(i);
                added = true;
            }
        }
    } while (added);
    return forRanges;
}