List of usage examples for com.google.common.collect DiscreteDomains integers
public static DiscreteDomain<Integer> integers()
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(); } }); }