Example usage for com.google.common.collect DiscreteDomain longs

List of usage examples for com.google.common.collect DiscreteDomain longs

Introduction

In this page you can find the example usage for com.google.common.collect DiscreteDomain longs.

Prototype

public static DiscreteDomain<Long> longs() 

Source Link

Document

Returns the discrete domain for values of type Long .

Usage

From source file:com.stackframe.base.Numbers.java

private static Set<Number> positiveIntegers() {
    // Consider adding BigInteger and other subclasses of Number that are integers.
    Set<? extends Number> longKeys = ContiguousSet.create(Range.greaterThan(0L), DiscreteDomain.longs());
    Set<? extends Number> intKeys = ContiguousSet.create(Range.greaterThan(0), DiscreteDomain.integers());
    return Sets.union(longKeys, intKeys);
}

From source file:io.techcode.velox.math.FastMath.java

/**
 * Returns a random long value defined by the range.
 *
 * @param range range definition./*from  w w w. j  a  va2s  .c om*/
 * @return random long value.
 */
public static long randomLong(Range<Long> range) {
    return randomGeneric(range, DiscreteDomain.longs());
}

From source file:org.locationtech.geogig.osm.internal.history.HistoryDownloader.java

/**
 * @return the next available changeset, or absent if reached the last one
 * @throws IOException//from www  .  j a  v  a2s . c  o  m
 * @throws InterruptedException
 */
public Iterator<Changeset> fetchChangesets() {

    Range<Long> range = Range.closed(initialChangeset, finalChangeset);
    ContiguousSet<Long> changesetIds = ContiguousSet.create(range, DiscreteDomain.longs());
    final int fetchSize = 100;
    Iterator<List<Long>> partitions = Iterators.partition(changesetIds.iterator(), fetchSize);

    Function<List<Long>, Iterator<Changeset>> asChangesets = new Function<List<Long>, Iterator<Changeset>>() {
        @Override
        public Iterator<Changeset> apply(List<Long> batchIds) {

            Iterable<Changeset> changesets = downloader.fetchChangesets(batchIds);

            for (Changeset changeset : changesets) {
                if (filter.apply(changeset)) {
                    Supplier<Optional<File>> changesFile;
                    changesFile = downloader.fetchChanges(changeset.getId());
                    Supplier<Optional<Iterator<Change>>> changes = new ChangesSupplier(changesFile);
                    changeset.setChanges(changes);
                }
            }

            return changesets.iterator();
        }
    };

    Iterator<Iterator<Changeset>> changesets = Iterators.transform(partitions, asChangesets);
    Iterator<Changeset> concat = Iterators.concat(changesets);
    return concat;
}

From source file:org.obm.push.minig.imap.impl.ImapMessageSet.java

private String rangeAsString(Range<Long> range) {
    ContiguousSet<Long> rangeAsSet = ContiguousSet.create(range, DiscreteDomain.longs());
    if (rangeAsSet.size() == 1) {
        return singleValueRangeAsString(rangeAsSet);
    } else {//  ww  w  . j  a va 2  s.  com
        return intervalRangeAsString(rangeAsSet);
    }
}

From source file:org.geogig.osm.internal.history.HistoryDownloader.java

public void downloadAll(ProgressListener progressListener) {
    RemoteChangesetDownloader downloader = (RemoteChangesetDownloader) this.downloader;
    Range<Long> range = Range.closed(initialChangeset, finalChangeset);
    ContiguousSet<Long> changesetIds = ContiguousSet.create(range, DiscreteDomain.longs());

    progressListener/*from w  w w . j  av  a 2 s . c o m*/
            .setDescription("Downloading changesets " + initialChangeset + " to " + finalChangeset + "...");

    final int readTimeoutMinutes = 20;

    final AtomicBoolean abortFlag = new AtomicBoolean();

    List<Future<Long>> futures = new LinkedList<>();
    for (Long changesetId : changesetIds) {
        try {

            Future<Long> future = downloader.download(changesetId, readTimeoutMinutes, abortFlag);
            futures.add(future);
        } catch (IOException e) {
            e.printStackTrace();
            throw Throwables.propagate(e);
        }
    }
    for (Future<Long> f : futures) {
        try {
            Long id = f.get();
            if (-1L == id.longValue()) {
                continue;
            }
            progressListener.setDescription("Downloaded changeset " + id + ".");
        } catch (InterruptedException | ExecutionException e) {
            e.printStackTrace();
            throw Throwables.propagate(e);
        }
    }
    progressListener.setDescription("Done!");
}

From source file:org.nmdp.ngs.tools.EvaluateScaffolds.java

@Override
public Integer call() throws Exception {
    PrintWriter writer = null;// w  w  w .  j a v a2s.co  m
    try {
        writer = writer(evalFile);

        Sequence reference = readReference();
        List<Sequence> scaffolds = readScaffolds();

        writer.println("#reference length = " + reference.length());
        writer.println("#scaffold count = " + scaffolds.size());
        writer.println("#scaffold lengths = " + dumpLengths(scaffolds));

        RangeSet<Long> ranges = TreeRangeSet.create();
        for (HighScoringPair hsp : blastn(referenceFastaFile, scaffoldsFastaFile)) {
            if (reference.getName().equals(hsp.target())) {
                writer.println("#" + hsp.toString());
                if (hsp.targetStart() <= hsp.targetEnd()) { // strands match
                    ranges.add(Range.closed(hsp.targetStart(), hsp.targetEnd()));
                } else {
                    ranges.add(Range.closed(hsp.targetEnd(), hsp.targetStart()));
                }
            }
        }

        writer.println("#coalesced intervals = " + ranges);

        long breadthOfCoverage = 0;
        for (Range<Long> range : ranges.asRanges()) {
            breadthOfCoverage += ContiguousSet.create(range, DiscreteDomain.longs()).size();
        }
        double normalizedBreadthOfCoverage = (double) breadthOfCoverage / (double) reference.length();
        writer.println("#breadth-of-coverage = " + breadthOfCoverage);
        writer.println("#normalized breadth-of-coverage = " + normalizedBreadthOfCoverage);

        StringBuilder sb = new StringBuilder();
        sb.append(referenceFastaFile.getName());
        sb.append("\t");
        sb.append(scaffoldsFastaFile.getName());
        sb.append("\t");
        sb.append(reference.length());
        sb.append("\t");
        sb.append(scaffolds.size());
        sb.append("\t");
        sb.append(ranges.asRanges().size());
        sb.append("\t");
        sb.append(breadthOfCoverage);
        sb.append("\t");
        sb.append(normalizedBreadthOfCoverage);
        sb.append("\t");
        writer.println(sb.toString());

        return 0;
    } finally {
        try {
            writer.close();
        } catch (Exception e) {
            // ignore
        }
    }
}

From source file:com.google.android.apps.forscience.whistlepunk.sensordb.SensorDatabaseImpl.java

/**
 * Gets the selection string and selectionArgs based on the tag, range and resolution tier.
 *
 * @return a pair where the first element is the selection string and the second element is the
 * array of selectionArgs./*from   w w  w. j ava2  s .c o  m*/
 */
private Pair<String, String[]> getSelectionAndArgs(String sensorTag, TimeRange range, int resolutionTier) {
    List<String> clauses = new ArrayList<>();
    List<String> values = new ArrayList<>();

    clauses.add(ScalarSensorsTable.Column.TAG + " = ?");
    values.add(sensorTag);

    if (resolutionTier >= 0) {
        clauses.add(ScalarSensorsTable.Column.RESOLUTION_TIER + " = ?");
        values.add(String.valueOf(resolutionTier));
    }

    Range<Long> times = range.getTimes();
    Range<Long> canonicalTimes = times.canonical(DiscreteDomain.longs());
    if (canonicalTimes.hasLowerBound()) {
        String comparator = (canonicalTimes.lowerBoundType() == BoundType.CLOSED) ? " >= ?" : " > ?";
        clauses.add(ScalarSensorsTable.Column.TIMESTAMP_MILLIS + comparator);
        values.add(String.valueOf(canonicalTimes.lowerEndpoint()));
    }
    if (canonicalTimes.hasUpperBound()) {
        String comparator = (canonicalTimes.upperBoundType() == BoundType.CLOSED) ? " =< ?" : " < ?";
        clauses.add(ScalarSensorsTable.Column.TIMESTAMP_MILLIS + comparator);
        values.add(String.valueOf(canonicalTimes.upperEndpoint()));
    }

    return new Pair<>(Joiner.on(" AND ").join(clauses), values.toArray(new String[values.size()]));
}

From source file:org.geogig.osm.internal.history.HistoryDownloader.java

/**
 * @return the next available changeset, or absent if reached the last one
 * @throws IOException//  w w w  .j  a  v a2 s  . c om
 * @throws InterruptedException
 */
public Iterator<Changeset> fetchChangesets() {

    Range<Long> range = Range.closed(initialChangeset, finalChangeset);
    ContiguousSet<Long> changesetIds = ContiguousSet.create(range, DiscreteDomain.longs());
    final int fetchSize = 100;
    Iterable<List<Long>> partitions = Iterables.partition(changesetIds, fetchSize);

    final Function<List<Long>, Iterable<Changeset>> asChangesets = (batchIds) -> {
        Iterable<Changeset> changesets = downloader.fetchChangesets(batchIds);
        return changesets;
    };

    Iterable<Iterable<Changeset>> changesets = Iterables.transform(partitions, asChangesets);
    Iterable<Changeset> concat = Iterables.concat(changesets);
    return concat.iterator();
}

From source file:com.google.android.apps.forscience.whistlepunk.GraphPopulator.java

private Range<Long> getEffectiveAddedRange(TimeRange requested, Range<Long> returned) {
    if (returned == null) {
        return requested.getTimes().canonical(DiscreteDomain.longs());
    }//from w w w  .j  a  v  a2s. c o m

    switch (requested.getOrder()) {
    case NEWEST_FIRST:
        return Range.closed(returned.lowerEndpoint(), requested.getTimes().upperEndpoint());
    case OLDEST_FIRST:
        return Range.closed(requested.getTimes().lowerEndpoint(), returned.upperEndpoint());
    default:
        throw new IllegalArgumentException("Unexpected value for enum: " + requested.getOrder());
    }
}

From source file:org.obm.push.mail.bean.MessageSet.java

public Iterable<Long> asDiscreteValues() {
    return Iterables.concat(Iterables.transform(ranges, new Function<Range<Long>, Set<Long>>() {
        @Override/* www  .ja  va  2  s .  c om*/
        public Set<Long> apply(Range<Long> input) {
            return ContiguousSet.create(input, DiscreteDomain.longs());
        }
    }));
}