Example usage for com.google.common.collect ImmutableRangeSet.Builder add

List of usage examples for com.google.common.collect ImmutableRangeSet.Builder add

Introduction

In this page you can find the example usage for com.google.common.collect ImmutableRangeSet.Builder add.

Prototype

@Override
    public void add(Range<C> range) 

Source Link

Usage

From source file:io.v.todos.persistence.syncbase.DigitMappings.java

/**
 * @see #fromRangeSet(RangeSet)/* w  w w  . j ava 2  s . c om*/
 */
@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.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. j  a v  a 2s.  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: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  w w . ja v  a 2 s .co  m*/
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: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.
 *///from  w  w w .j  a v a  2  s .co  m
private static void parseRangeSet(ImmutableRangeSet.Builder<Integer> result, String ranges) {
    for (String range : COMMA_SPLITTER.split(ranges)) {
        result.add(parseRange(range));
    }
}

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  w w w . j a  v  a  2  s . co  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: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   ww w. jav a 2  s.c  om
    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.InPredicate.java

/**    
 * {@inheritDoc}//  ww  w.  ja  va 2  s. com
 */
@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.pentaho.di.trans.steps.samplerows.SampleRows.java

public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException {
    meta = (SampleRowsMeta) smi;//from   w w  w .  j av a  2  s .  co m
    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;
}