Example usage for com.google.common.collect Range upperEndpoint

List of usage examples for com.google.common.collect Range upperEndpoint

Introduction

In this page you can find the example usage for com.google.common.collect Range upperEndpoint.

Prototype

public C upperEndpoint() 

Source Link

Document

Returns the upper endpoint of this range.

Usage

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

/** @return {@code true} if input and output texts are equal, else {@code false}. */
private boolean idempotent(String source, IRegion[] regions, List<Replacement> replacements) {
    // This implementation only checks for single replacement.
    if (replacements.size() == 1) {
        Replacement replacement = replacements.get(0);
        String output = replacement.getReplacementString();
        // Entire source case: input = output, nothing changed.
        if (output.equals(source)) {
            return true;
        }/*from   w  ww. j ava2  s .  c  o m*/
        // Single region and single replacement case: if they are equal, nothing changed.
        if (regions.length == 1) {
            Range<Integer> range = replacement.getReplaceRange();
            String snippet = source.substring(range.lowerEndpoint(), range.upperEndpoint());
            if (output.equals(snippet)) {
                return true;
            }
        }
    }
    return false;
}

From source file:it.units.malelab.ege.ge.mapper.BitsSGEMapper.java

public BitsSGEMapper(int maxDepth, Grammar<T> grammar) {
    super(grammar);
    this.maxDepth = maxDepth;
    nonRecursiveGrammar = Utils.resolveRecursiveGrammar(grammar, maxDepth);
    Map<Pair<T, Integer>, Range<Integer>> codonsRangesMap = new LinkedHashMap<>();
    int startingIndex = 0;
    for (Pair<T, Integer> p : nonRecursiveGrammar.getRules().keySet()) {
        int maximumExpansions = maximumExpansions(p, nonRecursiveGrammar);
        codonsRangesMap.put(p, Range.closedOpen(startingIndex, startingIndex + maximumExpansions));
        startingIndex = startingIndex + maximumExpansions;
    }//from   w w w.ja  va  2s.co m
    nonTerminals = new ArrayList<>(codonsRangesMap.keySet());
    nonTerminalSizes = new ArrayList<>();
    nonTerminalCodonsNumbers = new ArrayList<>();
    overallSize = 0;
    for (Pair<T, Integer> nonTerminal : nonTerminals) {
        Range<Integer> range = codonsRangesMap.get(nonTerminal);
        int nonTerminalCodonsNumber = range.upperEndpoint() - range.lowerEndpoint();
        int codonSize = (int) Math.max(
                Math.ceil(Math.log10(nonRecursiveGrammar.getRules().get(nonTerminal).size()) / Math.log10(2)),
                1);
        nonTerminalSizes.add(nonTerminalCodonsNumber * codonSize);
        nonTerminalCodonsNumbers.add(nonTerminalCodonsNumber);
        overallSize = overallSize + nonTerminalCodonsNumber * codonSize;
    }
}

From source file:com.github.fge.grappa.buffers.CharSequenceInputBuffer.java

@Override
public String extractLine(int lineNumber) {
    Preconditions.checkArgument(lineNumber > 0, "line number is negative");
    LineCounter counter = lineCounter; //Futures.getUnchecked(lineCounter);
    Range<Integer> range = counter.getLineRange(lineNumber);
    int start = range.lowerEndpoint();
    int end = range.upperEndpoint();
    if (charAt(end - 1) == '\n')
        end--;/*from  w w w  . j  a v a2s  .  c  om*/
    if (charAt(end - 1) == '\r')
        end--;
    return extract(start, end);
}

From source file:com.yahoo.gondola.container.BucketManager.java

private void loadBucketTable() {
    Range<Integer> range;//from w w w  . j a  v a  2 s  . c o  m
    int numBuckets = 0;
    for (String shardId : config.getShardIds()) {
        Map<String, String> attributesForShard = config.getAttributesForShard(shardId);
        String bucketMapString = attributesForShard.get("bucketMap");
        bucketMapString = validateBucketString(shardId, bucketMapString);
        if (bucketMapString == null) {
            continue;
        }

        for (String str : bucketMapString.split(",")) {
            String[] rangePair = str.split("-");
            switch (rangePair.length) {
            case 1:
                range = Range.closed(Integer.parseInt(rangePair[0]), Integer.parseInt(rangePair[0]));
                break;
            case 2:
                range = Range.closed(Integer.valueOf(rangePair[0]), Integer.valueOf(rangePair[1]));
                break;
            default:
                throw new IllegalStateException("Range format: x - y or  x, but get " + str);

            }
            if (range.lowerEndpoint() < 0) {
                throw new IllegalStateException("Bucket id must > 0");
            }
            bucketMap.put(range, new ShardState(shardId, null));
        }
    }
    for (Map.Entry<Range<Integer>, ShardState> e : bucketMap.asMapOfRanges().entrySet()) {
        Range<Integer> r = e.getKey();
        numBuckets += (r.upperEndpoint() - r.lowerEndpoint() + 1);
    }
    numberOfBuckets = numBuckets;
    validateBucketMap();
}

From source file:org.apache.drill.exec.store.AffinityCalculator.java

/**
 * For a given RowGroup, calculate how many bytes are available on each on drillbit endpoint
 *
 * @param rowGroup the RowGroup to calculate endpoint bytes for
 *///from  w ww.j a v  a 2s .c o m
public void setEndpointBytes(ParquetGroupScan.RowGroupInfo rowGroup) {
    Stopwatch watch = new Stopwatch();
    watch.start();
    String fileName = rowGroup.getPath();
    if (!blockMapMap.containsKey(fileName)) {
        buildBlockMap(fileName);
    }

    ImmutableRangeMap<Long, BlockLocation> blockMap = blockMapMap.get(fileName);
    HashMap<String, Long> hostMap = new HashMap<>();
    HashMap<DrillbitEndpoint, Long> endpointByteMap = new HashMap();
    long start = rowGroup.getStart();
    long end = start + rowGroup.getLength();
    Range<Long> rowGroupRange = Range.closedOpen(start, end);

    // Find submap of ranges that intersect with the rowGroup
    ImmutableRangeMap<Long, BlockLocation> subRangeMap = blockMap.subRangeMap(rowGroupRange);

    // Iterate through each block in this submap and get the host for the block location
    for (Map.Entry<Range<Long>, BlockLocation> block : subRangeMap.asMapOfRanges().entrySet()) {
        String[] hosts;
        Range<Long> blockRange = block.getKey();
        try {
            hosts = block.getValue().getHosts();
        } catch (IOException ioe) {
            throw new RuntimeException("Failed to get hosts for block location", ioe);
        }
        Range<Long> intersection = rowGroupRange.intersection(blockRange);
        long bytes = intersection.upperEndpoint() - intersection.lowerEndpoint();

        // For each host in the current block location, add the intersecting bytes to the corresponding endpoint
        for (String host : hosts) {
            DrillbitEndpoint endpoint = getDrillBitEndpoint(host);
            if (endpointByteMap.containsKey(endpoint)) {
                endpointByteMap.put(endpoint, endpointByteMap.get(endpoint) + bytes);
            } else {
                if (endpoint != null)
                    endpointByteMap.put(endpoint, bytes);
            }
        }
    }

    rowGroup.setEndpointBytes(endpointByteMap);
    rowGroup.setMaxBytes(endpointByteMap.size() > 0 ? Collections.max(endpointByteMap.values()) : 0);
    logger.debug("Row group ({},{}) max bytes {}", rowGroup.getPath(), rowGroup.getStart(),
            rowGroup.getMaxBytes());
    watch.stop();
    logger.debug("Took {} ms to set endpoint bytes", watch.elapsed(TimeUnit.MILLISECONDS));
}

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

private TextEdit editFromReplacements(List<Replacement> replacements) {
    // Split the replacements that cross line boundaries.
    TextEdit edit = new MultiTextEdit();
    for (Replacement replacement : replacements) {
        Range<Integer> replaceRange = replacement.getReplaceRange();
        edit.addChild(new ReplaceEdit(replaceRange.lowerEndpoint(),
                replaceRange.upperEndpoint() - replaceRange.lowerEndpoint(),
                replacement.getReplacementString()));
    }/*  w  w w  .j a  v  a2s  .co m*/
    return edit;
}

From source file:org.noroomattheinn.timeseries.InMemoryTS.java

@Override
public NavigableMap<Long, Row> getIndex(Range<Long> period) {
    long from = period.hasLowerBound() ? period.lowerEndpoint() : 0;
    long to = period.hasUpperBound() ? period.upperEndpoint() : Long.MAX_VALUE;
    return index.subMap(from, true, to, true);
}

From source file:it.units.malelab.ege.ge.operator.TwoPointsCrossover.java

protected List<BitsGenotype> children(BitsGenotype parent1, Range<Integer> range1, BitsGenotype parent2,
        Range<Integer> range2) {
    int startIndex1 = range1.lowerEndpoint();
    int startIndex2 = range2.lowerEndpoint();
    int endIndex1 = range1.upperEndpoint();
    int endIndex2 = range2.upperEndpoint();
    int child1Size = parent1.size() - (endIndex1 - startIndex1) + (endIndex2 - startIndex2);
    int child2Size = parent2.size() - (endIndex2 - startIndex2) + (endIndex1 - startIndex1);
    BitsGenotype child1 = new BitsGenotype(child1Size);
    BitsGenotype child2 = new BitsGenotype(child2Size);
    if (startIndex1 > 0) {
        child1.set(0, parent1.slice(0, startIndex1));
    }/*from w ww.  j a  v  a  2 s  .  co  m*/
    if (startIndex2 > 0) {
        child2.set(0, parent2.slice(0, startIndex2));
    }
    child1.set(startIndex1, parent2.slice(startIndex2, endIndex2));
    child2.set(startIndex2, parent1.slice(startIndex1, endIndex1));
    if (endIndex1 < parent1.size()) {
        child1.set(startIndex1 + endIndex2 - startIndex2, parent1.slice(endIndex1, parent1.size()));
    }
    if (endIndex2 < parent2.size()) {
        child2.set(startIndex2 + endIndex1 - startIndex1, parent2.slice(endIndex2, parent2.size()));
    }
    return Arrays.asList(child1, child2);
}

From source file:org.mskcc.shenkers.view.GeneViewBuilder.java

public RangeSet<Integer> asClosed(RangeSet<Integer> s) {
    RangeSet<Integer> exons = TreeRangeSet.create();
    for (Range<Integer> r : s.asRanges()) {
        exons.add(Range.closed(r.lowerBoundType() == BoundType.OPEN ? r.lowerEndpoint() + 1 : r.lowerEndpoint(),
                r.upperBoundType() == BoundType.OPEN ? r.upperEndpoint() - 1 : r.upperEndpoint()));
    }/*from   w  w  w. j a va 2s .co  m*/
    return exons;
}

From source file:utils.CreateFromSelection.java

@Override
public void actionPerformed(ActionEvent e) {
    CoolMapObject obj = CoolMapMaster.getActiveCoolMapObject();
    if (obj == null) {
        CMConsole.logWarning("No active coolmap in view. Create new view aborted");
        return;/*from   w  w w.  j  ava2 s .c  om*/
    }

    CoolMapView view = obj.getCoolMapView();
    ArrayList<Range<Integer>> selectedRows = view.getSelectedRows();
    ArrayList<Range<Integer>> selectedColumns = view.getSelectedColumns();

    if (selectedRows.isEmpty() || selectedColumns.isEmpty()) {
        CMConsole.logWarning("No region(s) were selected in view. Create new view aborted");
        return;
    }

    ArrayList<VNode> newRowNodes = new ArrayList<VNode>();
    ArrayList<VNode> newColumnNodes = new ArrayList<VNode>();

    for (Range<Integer> range : selectedRows) {
        for (int i = range.lowerEndpoint(); i < range.upperEndpoint(); i++) {
            newRowNodes.add(obj.getViewNodeRow(i).duplicate());
        }
    }

    for (Range<Integer> range : selectedColumns) {
        for (int i = range.lowerEndpoint(); i < range.upperEndpoint(); i++) {
            newColumnNodes.add(obj.getViewNodeColumn(i).duplicate());
        }
    }

    CoolMapObject newObject = new CoolMapObject();
    List<CMatrix> baseCMatrices = obj.getBaseCMatrices();
    for (CMatrix mx : baseCMatrices) {
        newObject.addBaseCMatrix(mx);
    }

    newObject.insertRowNodes(newRowNodes);
    newObject.insertColumnNodes(newColumnNodes);

    if (obj.getAggregator() != null) {
        try {
            CAggregator aggr = (CAggregator) (obj.getAggregator().getClass().newInstance());
            aggr.restoreState(obj.getAggregator().getCurrentState());
            newObject.setAggregator(aggr);
        } catch (Exception ex) {
            CMConsole.logWarning(
                    "Could not initialize aggregator " + obj.getAggregator() + ", using default instead.");
            newObject.setAggregator(new PassThrough());
        }
    } else {
        newObject.setAggregator(new PassThrough());
    }

    if (obj.getViewRenderer() != null) {
        try {
            ViewRenderer renderer = (ViewRenderer) (obj.getViewRenderer().getClass().newInstance());
            newObject.setViewRenderer(renderer, true);
            //                System.out.println("Current state:" + obj.getViewRenderer().getCurrentState());
            renderer.restoreState(obj.getViewRenderer().getCurrentState());

        } catch (Exception ex) {
            CMConsole.logWarning(
                    "Could not initialize aggregator " + obj.getAggregator() + ", using default instead.");
            newObject.setViewRenderer(new TextRenderer(), true);
        }

    } else {
        newObject.setViewRenderer(new TextRenderer(), true);
    }

    if (obj.getSnippetConverter() != null) {
        try {
            SnippetConverter convert = obj.getSnippetConverter().getClass().newInstance();
            convert.restoreState(obj.getSnippetConverter().getCurrentState());
            newObject.setSnippetConverter(convert);
        } catch (Exception ex) {
            //do nothing
        }
    }

    //newObject
    newObject.getCoolMapView().addColumnMap(new ColumnLabels(newObject));
    newObject.getCoolMapView().addColumnMap(new ColumnTree(newObject));
    newObject.getCoolMapView().addRowMap(new RowLabels(newObject));
    newObject.getCoolMapView().addRowMap(new RowTree(newObject));

    newObject.setName(obj.getName() + " subregion");

    CoolMapMaster.addNewCoolMapObject(newObject);

}