List of usage examples for com.google.common.collect TreeRangeSet create
public static <C extends Comparable<?>> TreeRangeSet<C> create()
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; }