List of usage examples for com.google.common.collect ImmutableRangeSet builder
public static <C extends Comparable<?>> Builder<C> builder()
From source file:org.apache.aurora.scheduler.updater.Updates.java
/** * Creates a range set representing all instance IDs represented by a set of instance * configurations included in a job update. * * @param configs Job update components. * @return A range set representing the instance IDs mentioned in instance groupings. *//*from w ww.ja va 2s .c om*/ public static ImmutableRangeSet<Integer> getInstanceIds(Set<IInstanceTaskConfig> configs) { ImmutableRangeSet.Builder<Integer> builder = ImmutableRangeSet.builder(); for (IInstanceTaskConfig config : configs) { for (IRange range : config.getInstances()) { builder.add(Range.closed(range.getFirst(), range.getLast())); } } return builder.build(); }
From source file:io.v.todos.persistence.syncbase.DigitMappings.java
/** * @see #fromRangeSet(RangeSet)//from w w w .jav a 2 s . c o m */ @SafeVarargs public static DigitMapping fromRangeSet(Range<Character>... ranges) { ImmutableRangeSet.Builder<Character> builder = ImmutableRangeSet.builder(); for (Range<Character> range : ranges) { builder.add(range); } return fromRangeSet(builder.build()); }
From source file:org.opendaylight.controller.cluster.datastore.persisted.FrontendClientMetadata.java
public static FrontendClientMetadata readFrom(final DataInput in) throws IOException, ClassNotFoundException { final ClientIdentifier id = ClientIdentifier.readFrom(in); final int purgedSize = in.readInt(); final Builder<UnsignedLong> b = ImmutableRangeSet.builder(); for (int i = 0; i < purgedSize; ++i) { final byte header = WritableObjects.readLongHeader(in); final UnsignedLong lower = UnsignedLong.fromLongBits(WritableObjects.readFirstLong(in, header)); final UnsignedLong upper = UnsignedLong.fromLongBits(WritableObjects.readSecondLong(in, header)); b.add(Range.closed(lower, upper)); }/*w w w . j a v a 2s . co m*/ final int currentSize = in.readInt(); final Collection<FrontendHistoryMetadata> currentHistories = new ArrayList<>(currentSize); for (int i = 0; i < currentSize; ++i) { currentHistories.add(FrontendHistoryMetadata.readFrom(in)); } return new FrontendClientMetadata(id, b.build(), currentHistories); }
From source file:org.apache.aurora.scheduler.base.Numbers.java
/** * Performs {@link #toRange(IRange)} for a collection of ranges, and convert the result to a set * of integers./*w ww .ja v a 2 s . c om*/ * * @param ranges Ranges to convert. * @return A set representing {@code ranges}. */ public static Set<Integer> rangesToInstanceIds(Iterable<IRange> ranges) { ImmutableRangeSet.Builder<Integer> instanceIds = ImmutableRangeSet.builder(); for (IRange range : ranges) { instanceIds.add(toRange(range)); } return instanceIds.build().asSet(DiscreteDomain.integers()); }
From source file:google.registry.tldconfig.idn.IdnTable.java
/** Creates an IDN table given the lines from text file. */ static IdnTable createFrom(String language, Iterable<String> data, Optional<LanguageValidator> languageValidator) { ImmutableRangeSet.Builder<Integer> rangeSet = new ImmutableRangeSet.Builder<>(); URI url = null;/*from w w w . j a v a 2 s . c o m*/ URI policy = null; for (String line : data) { // Remove leading and trailing whitespace. line = line.trim(); // Handle special comment lines. if (line.startsWith(URL_LINE_PREFIX)) { url = URI.create(line.substring(URL_LINE_PREFIX.length())); } else if (line.startsWith(POLICY_LINE_PREFIX)) { policy = URI.create(line.substring(POLICY_LINE_PREFIX.length())); } // Skip empty and comment lines. if (line.isEmpty() || line.startsWith("#")) { continue; } int codepoint = readCodepoint(line); rangeSet.add(Range.<Integer>singleton(codepoint)); } return new IdnTable(language, url, policy, rangeSet.build(), languageValidator); }
From source file:io.horizondb.model.core.predicates.AndPredicate.java
/** * {@inheritDoc}/* w w w . j av a 2s .co m*/ */ @Override public RangeSet<Field> getTimestampRanges() { RangeSet<Field> leftRanges = this.left.getTimestampRanges(); RangeSet<Field> rightRanges = this.right.getTimestampRanges(); Builder<Field> builder = ImmutableRangeSet.builder(); for (Range<Field> range : leftRanges.asRanges()) { builder.addAll(rightRanges.subRangeSet(range)); } return builder.build(); }
From source file:org.pentaho.di.trans.steps.samplerows.SampleRows.java
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException { meta = (SampleRowsMeta) smi;/*w ww . j a v a2 s .c om*/ data = (SampleRowsData) sdi; Object[] r = getRow(); // get row, set busy! if (r == null) { // no more input to be expected... setOutputDone(); return false; } if (first) { first = false; String realRange = environmentSubstitute(meta.getLinesRange()); data.addlineField = (!Utils.isEmpty(environmentSubstitute(meta.getLineNumberField()))); // get the RowMeta data.previousRowMeta = getInputRowMeta().clone(); data.NrPrevFields = data.previousRowMeta.size(); data.outputRowMeta = data.previousRowMeta; if (data.addlineField) { meta.getFields(data.outputRowMeta, getStepname(), null, null, this, repository, metaStore); } String[] rangePart = realRange.split(","); ImmutableRangeSet.Builder<Integer> setBuilder = ImmutableRangeSet.builder(); for (String part : rangePart) { if (part.matches("\\d+")) { if (log.isDebug()) { logDebug(BaseMessages.getString(PKG, "SampleRows.Log.RangeValue", part)); } int vpart = Integer.valueOf(part); setBuilder.add(Range.singleton(vpart)); } else if (part.matches("\\d+\\.\\.\\d+")) { String[] rangeMultiPart = part.split("\\.\\."); Integer start = Integer.valueOf(rangeMultiPart[0]); Integer end = Integer.valueOf(rangeMultiPart[1]); Range<Integer> range = Range.closed(start, end); if (log.isDebug()) { logDebug(BaseMessages.getString(PKG, "SampleRows.Log.RangeValue", range)); } setBuilder.add(range); } } data.rangeSet = setBuilder.build(); } // end if first if (data.addlineField) { data.outputRow = RowDataUtil.allocateRowData(data.outputRowMeta.size()); for (int i = 0; i < data.NrPrevFields; i++) { data.outputRow[i] = r[i]; } } else { data.outputRow = r; } int linesRead = (int) getLinesRead(); if (data.rangeSet.contains(linesRead)) { if (data.addlineField) { data.outputRow[data.NrPrevFields] = getLinesRead(); } // copy row to possible alternate rowset(s). // putRow(data.outputRowMeta, data.outputRow); if (log.isRowLevel()) { logRowlevel(BaseMessages.getString(PKG, "SampleRows.Log.LineNumber", linesRead + " : " + getInputRowMeta().getString(r))); } } // Check if maximum value has been exceeded if (data.rangeSet.isEmpty() || linesRead >= data.rangeSet.span().upperEndpoint()) { setOutputDone(); } // Allowed to continue to read in data return true; }
From source file:io.horizondb.model.core.predicates.InPredicate.java
/** * {@inheritDoc}/*w w w. j a va 2 s . c o m*/ */ @Override public RangeSet<Field> getTimestampRanges() { if (!isTimestamp()) { return TimestampField.ALL; } ImmutableRangeSet.Builder<Field> builder = ImmutableRangeSet.builder(); for (Field field : this.values) { builder.add(Range.closed(field, field)); } RangeSet<Field> rangeSet = builder.build(); if (this.notIn) { return rangeSet.complement(); } return rangeSet; }
From source file:org.apache.cassandra.cql3.restrictions.TokenFilter.java
/** * Converts the specified list into a range set. * * @param buffers the token restriction values * @return the range set corresponding to the specified list *//*from www . j a v a 2 s . c o m*/ private static RangeSet<Token> toRangeSet(List<ByteBuffer> buffers) { ImmutableRangeSet.Builder<Token> builder = ImmutableRangeSet.builder(); for (ByteBuffer buffer : buffers) builder.add(Range.singleton(deserializeToken(buffer))); return builder.build(); }
From source file:com.google.googlejavaformat.java.CommandLineOptionsParser.java
/** * Parse multiple --lines flags, like {"1:12,14,20:36", "40:45,50"}. Multiple ranges can be given * with multiple --lines flags or separated by commas. A single line can be set by a single * number. Line numbers are {@code 1}-based, but are converted to the {@code 0}-based numbering * used internally by google-java-format. */// w w w .j av a2 s .c om private static void parseRangeSet(ImmutableRangeSet.Builder<Integer> result, String ranges) { for (String range : COMMA_SPLITTER.split(ranges)) { result.add(parseRange(range)); } }