Example usage for com.google.common.collect DiscreteDomains integers

List of usage examples for com.google.common.collect DiscreteDomains integers

Introduction

In this page you can find the example usage for com.google.common.collect DiscreteDomains integers.

Prototype

public static DiscreteDomain<Integer> integers() 

Source Link

Usage

From source file:com.comphenix.protocol.compat.guava.Guava10.java

@Override
public Set<Integer> toSet(Range<Integer> range) {
    return range.asSet(DiscreteDomains.integers());
}

From source file:io.TileSetBuilderWesnoth.java

public HexTileSet read() {
    Map<OctDirection, TerrainType> borders = new HashMap<>();

    HexTileSet ts = new HexTileSet(72, 72, 36);
    ts.addImage(loadImage("foreground.png"), 0, 0, 0, 0);
    ts.setCursorTileIndex(0);/*from  www. j a  va2s  .c o m*/
    ts.setInvalidTileIndex(0);

    ts.addImage(loadImage("grass", "green.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green2.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green3.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green4.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green5.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green6.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green7.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("grass", "green8.png"), 0, 0, 0, 0);

    ts.defineTerrain(Ranges.closed(1, 8).asSet(DiscreteDomains.integers()), TerrainType.GRASS, borders);

    ts.addImage(loadImage("water", "coast-tropical-A01.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A02.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A03.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A04.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A05.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A06.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A07.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A08.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A09.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A10.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A11.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A12.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A13.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A14.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("water", "coast-tropical-A15.png"), 0, 0, 0, 0);

    ts.defineTerrain(Ranges.closed(9, 23).asSet(DiscreteDomains.integers()), TerrainType.WATER, borders);

    ts.addImage(loadImage("sand", "desert.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert2.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert3.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert4.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert5.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert6.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert7.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("sand", "desert8.png"), 0, 0, 0, 0);

    ts.defineTerrain(Ranges.closed(24, 31).asSet(DiscreteDomains.integers()), TerrainType.SAND, borders);

    ts.addImage(loadImage("forest", "forested-deciduous-summer-hills-tile.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("forest", "forested-hills-tile.png"), 0, 0, 0, 0);

    ts.defineTerrain(Ranges.closed(32, 33).asSet(DiscreteDomains.integers()), TerrainType.FOREST, borders);

    ts.addImage(loadImage("hills", "regular.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("hills", "regular2.png"), 0, 0, 0, 0);
    ts.addImage(loadImage("hills", "regular3.png"), 0, 0, 0, 0);

    ts.defineTerrain(Ranges.closed(34, 36).asSet(DiscreteDomains.integers()), TerrainType.MOUNTAIN, borders);

    ts.addImage(loadImage("grid.png"), 0, 0, 0, 0);

    ts.setGridTileIndex(37);

    return ts;
}

From source file:com.nitayjoffe.util.ranges.Range3D.java

private Range3D(Range<Integer> range1, Range<Integer> range2, Range<Integer> range3) {
    set1 = range1.asSet(DiscreteDomains.integers());
    set2 = range2.asSet(DiscreteDomains.integers());
    set3 = range3.asSet(DiscreteDomains.integers());
}

From source file:org.kitesdk.examples.staging.GenerateSimpleLogs.java

@Override
public int run(String[] args) throws Exception {
    // going to generate a lot of random log messages
    final Random rand = new Random();

    // open the repository
    final DatasetRepository repo = DatasetRepositories.open("repo:file:/tmp/data");

    // data is written to the staging dataset
    final Dataset<GenericRecord> staging = repo.load("logs_staging");
    final DatasetWriter<GenericRecord> writer = staging.newWriter();

    // this is going to build our simple log records
    final GenericRecordBuilder builder = new GenericRecordBuilder(staging.getDescriptor().getSchema());

    // generate timestamps 1 second apart starting... now
    final Calendar now = Calendar.getInstance();
    final long yesterday = now.getTimeInMillis() - DAY_IN_MILLIS;

    try {/*ww  w . java2s . com*/
        writer.open();

        // generate 15,000 messages, each 5 seconds apart, starting 24 hours ago
        // this is a little less than 24 hours worth of messages
        for (int second : Ranges.closed(0, 15000).asSet(DiscreteDomains.integers())) {
            LOG.info("Generating log message " + second);

            builder.set("timestamp", yesterday + second * 5000);
            builder.set("component", "GenerateSimpleLogs");

            int level = rand.nextInt(LOG_LEVELS.length);
            builder.set("level", LOG_LEVELS[level]);
            builder.set("message", LOG_MESSAGES[level]);

            writer.write(builder.build());
        }
    } finally {
        writer.flush();
        writer.close();
    }

    return 0;
}

From source file:com.cloudera.cdk.examples.staging.GenerateSimpleLogs.java

@Override
public int run(String[] args) throws Exception {
    // going to generate a lot of random log messages
    final Random rand = new Random();

    // open the repository
    final DatasetRepository repo = DatasetRepositories.open("repo:file:/tmp/data");

    // data is written to the staging dataset
    final Dataset<GenericRecord> staging = repo.load("logs-staging");
    final DatasetWriter<GenericRecord> writer = staging.newWriter();

    // this is going to build our simple log records
    final GenericRecordBuilder builder = new GenericRecordBuilder(staging.getDescriptor().getSchema());

    // generate timestamps 1 second apart starting... now
    final Calendar now = Calendar.getInstance();
    final long yesterday = now.getTimeInMillis() - DAY_IN_MILLIS;

    try {/*  w w  w.  ja  va2 s. c o  m*/
        writer.open();

        // generate 15,000 messages, each 5 seconds apart, starting 24 hours ago
        // this is a little less than 24 hours worth of messages
        for (int second : Ranges.closed(0, 15000).asSet(DiscreteDomains.integers())) {
            LOG.info("Generating log message " + second);

            builder.set("timestamp", yesterday + second * 5000);
            builder.set("component", "GenerateSimpleLogs");

            int level = rand.nextInt(LOG_LEVELS.length);
            builder.set("level", LOG_LEVELS[level]);
            builder.set("message", LOG_MESSAGES[level]);

            writer.write(builder.build());
        }
    } finally {
        writer.flush();
        writer.close();
    }

    return 0;
}

From source file:org.kitesdk.data.spi.partition.IntRangeFieldPartitioner.java

@Override
public Predicate<Integer> project(Predicate<Integer> predicate) {
    if (predicate instanceof Predicates.Exists) {
        return Predicates.exists();
    } else if (predicate instanceof Predicates.In) {
        return ((Predicates.In<Integer>) predicate).transform(this);
    } else if (predicate instanceof Range) {
        // must use a closed range:
        //   if this( 5 ) => 10 then this( 6 ) => 10, so 10 must be included
        return Predicates.transformClosed(
                Predicates.adjustClosed((Range<Integer>) predicate, DiscreteDomains.integers()), this);
    } else {//w  w w . j ava2s.c om
        return null;
    }
}

From source file:co.cask.cdap.gateway.handlers.DatasetServiceStore.java

@Override
public synchronized void setRestartAllInstancesRequest(String serviceName, long startTimeMs, long endTimeMs,
        boolean isSuccess) {
    Preconditions.checkNotNull(serviceName, "Service name should not be null.");

    RestartStatus status = isSuccess ? RestartStatus.SUCCESS : RestartStatus.FAILURE;
    int instanceCount = (this.getServiceInstance(serviceName) == null) ? 0
            : this.getServiceInstance(serviceName);
    Set<Integer> instancesToRestart = Ranges.closedOpen(0, instanceCount).asSet(DiscreteDomains.integers());

    RestartServiceInstancesStatus restartStatus = new RestartServiceInstancesStatus(serviceName, startTimeMs,
            endTimeMs, status, instancesToRestart);
    String toJson = GSON.toJson(restartStatus, RestartServiceInstancesStatus.class);

    table.put(Bytes.toBytes(serviceName + "-restart"), Bytes.toBytes(toJson));
}

From source file:org.kitesdk.data.spi.partition.IntRangeFieldPartitioner.java

@Override
public Predicate<Integer> projectStrict(Predicate<Integer> predicate) {
    if (predicate instanceof Predicates.Exists) {
        return Predicates.exists();

    } else if (predicate instanceof Predicates.In) {
        // accumulate the bounds for which all inputs match the predicate
        Set<Integer> possibleValues = Sets.newHashSet();
        int end = upperBounds[upperBounds.length - 1];
        int nextIndex = 1; // the first bound is always excluded
        boolean matchedAll = true;
        for (int i = upperBounds[0] + 1; i <= end; i += 1) {
            matchedAll = matchedAll && predicate.apply(i);
            // if at an upper bound, see if it should be added and reset
            if (i == upperBounds[nextIndex]) {
                if (matchedAll) {
                    possibleValues.add(nextIndex);
                }/*from  w w  w .j  a v a 2  s  . c o  m*/
                // reset for the next bound
                matchedAll = true;
                nextIndex += 1;
            }
        }
        if (!possibleValues.isEmpty()) {
            return Predicates.in(possibleValues);
        }

    } else if (predicate instanceof Range) {
        Range<Integer> adjusted = Predicates.adjustClosed((Range<Integer>) predicate,
                DiscreteDomains.integers());
        if (adjusted.hasLowerBound()) {
            int lower = adjusted.lowerEndpoint();
            int lowerIndex = apply(lower);
            if ((lowerIndex == 0) || (upperBounds[lowerIndex - 1] < lower - 1)) {
                // at least one value that maps to lowerIndex but is not included
                lowerIndex += 1;
            }
            if (adjusted.hasUpperBound()) {
                int upper = adjusted.upperEndpoint();
                int upperIndex = apply(upper);
                if (upperBounds[upperIndex] > upper + 1) {
                    // at least one value that maps to upperIndex but is not included
                    upperIndex -= 1;
                }
                if (lowerIndex <= upperIndex) {
                    return Ranges.closed(lowerIndex, upperIndex);
                }
            } else {
                // while this includes values for which this function will throw
                // IllegalArgumentException, this is a fair projection of the
                // predicate. this is used assuming that apply succeeded.
                return Ranges.atLeast(lowerIndex);
            }
        } else if (adjusted.hasUpperBound()) {
            int upper = adjusted.upperEndpoint();
            int upperIndex = apply(upper);
            if (upperBounds[upperIndex] > upper + 1) {
                // at least one value that maps to upperIndex but is not included
                upperIndex -= 1;
            }
            return Ranges.atMost(upperIndex);
        }
    }
    return null;
}

From source file:com.facebook.hiveio.input.HiveApiInputFormat.java

/**
 * Compute column IDs from names/*from ww  w.  ja  v a 2  s. c  om*/
 *
 * @param columnNames names of columns
 * @param tableSchema schema for Hive table
 * @return array of column IDs
 */
private int[] computeColumnIds(List<String> columnNames, HiveTableSchema tableSchema) {
    List<Integer> ints;
    if (columnNames.isEmpty()) {
        Range<Integer> range = Ranges.closedOpen(0, tableSchema.numColumns());
        ints = range.asSet(DiscreteDomains.integers()).asList();
    } else {
        ints = transform(columnNames, HiveTableSchemas.schemaLookupFunc(tableSchema));
    }
    int[] result = new int[ints.size()];
    for (int i = 0; i < ints.size(); ++i) {
        result[i] = ints.get(i);
    }
    return result;
}

From source file:org.apache.twill.internal.appmaster.ApplicationMasterService.java

/**
 * Helper method to restart instances of runnables.
 *//*  w w  w. ja  v  a 2  s  .co m*/
private void restartRunnableInstances(final String runnableName, @Nullable final Set<Integer> instanceIds,
        final Runnable completion) {
    instanceChangeExecutor.execute(new Runnable() {
        @Override
        public void run() {
            LOG.debug("Begin restart runnable {} instances.", runnableName);
            int runningCount = runningContainers.count(runnableName);
            Set<Integer> instancesToRemove = instanceIds == null ? null : ImmutableSet.copyOf(instanceIds);
            if (instancesToRemove == null) {
                instancesToRemove = Ranges.closedOpen(0, runningCount).asSet(DiscreteDomains.integers());
            }

            LOG.info("Restarting instances {} for runnable {}", instancesToRemove, runnableName);
            RunnableContainerRequest containerRequest = createRunnableContainerRequest(runnableName,
                    instancesToRemove.size(), false);
            runnableContainerRequests.add(containerRequest);

            for (int instanceId : instancesToRemove) {
                LOG.debug("Stop instance {} for runnable {}", instanceId, runnableName);
                try {
                    runningContainers.stopByIdAndWait(runnableName, instanceId);
                } catch (Exception ex) {
                    // could be thrown if the container already stopped.
                    LOG.info("Exception thrown when stopping instance {} probably already stopped.",
                            instanceId);
                }
            }

            LOG.info("All instances in {} for runnable {} are stopped. Ready to provision", instancesToRemove,
                    runnableName);

            // set the container request to be ready
            containerRequest.setReadyToBeProvisioned();

            // For all runnables that needs to re-request for containers, update the expected count timestamp
            // so that the EventHandler would be triggered with the right expiration timestamp.
            expectedContainers.updateRequestTime(Collections.singleton(runnableName));

            completion.run();
        }
    });
}