List of usage examples for com.google.common.collect RangeSet contains
boolean contains(C value);
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; }