@Override public boolean register(RandomUser element) { final RngProvider provider = new RngProvider(); element.setRandomGenerator(provider); provider.invalidate(); return true; }
/** * Get access to the main random generator used in the simulator. * @return the random generator of the simulator */ @Override public RandomGenerator getRandomGenerator() { return rand.get(RandomProvider.class).masterInstance(); }
@SuppressWarnings("unchecked") static Builder create(long seed, StochasticSupplier<? extends RandomGenerator> ss) { return new AutoValue_RandomModel_Builder(seed, (StochasticSupplier<RandomGenerator>) ss); } }
@Override public void setRandomGenerator(RandomProvider provider) { rng = Optional.of(provider.newInstance()); } }
@Override public void setRandomGenerator(RandomProvider provider) { final RandomGenerator rng = provider.masterInstance(); assertSame(model.masterRandomGenerator, rng); testUnmodifiable(rng); } });
@Override public RandomModel build(DependencyProvider modelProvider) { return new RandomModel(rngSupplier().get(seed())); }
/** * Returns a copy of this builder with the specified random generator * supplier. * @param supplier The supplier of random generators. * @return A new builder instance. */ @CheckReturnValue public Builder withRandomGenerator( StochasticSupplier<? extends RandomGenerator> supplier) { return create(seed(), supplier); }
/** * Returns a copy of this builder with the specified seed. * @param seed The random seed. * @return A new builder instance. */ @CheckReturnValue public Builder withSeed(long seed) { return create(seed, rngSupplier()); }
@Override public boolean equals(Object o) { if (o == this) { return true; } if (o instanceof RandomModel.Builder) { RandomModel.Builder that = (RandomModel.Builder) o; return (this.seed == that.seed()) && (this.rngSupplier.equals(that.rngSupplier())); } return false; }
@Override public RandomGenerator masterInstance() { stateCheck(); return masterRandomGenerator; }
static Builder create(long seed) { return create(seed, DEFAULT_RNG); }
Builder() { setProvidingTypes(RandomProvider.class); }
RandomModel(RandomGenerator rng) { masterRandomGenerator = new UnmodifiableRandomGenerator(rng); classRngMap = new LinkedHashMap<>(); }
/** * Test new instance. */ @Test public void testNewInstance() { model.register(new RandomUser() { @Override public void setRandomGenerator(RandomProvider provider) { assertNotSame(model.masterRandomGenerator, provider.newInstance()); } }); }
@Override public void setRandomGenerator(RandomProvider provider) { rng = Optional.of(provider.newInstance()); } }
@Override public long getSeed() { stateCheck(); return masterRandomGenerator.nextLong(); }
@Override public void setRandomGenerator(RandomProvider provider) { randomGenerator = provider.newInstance(); } }
@Override public void setRandomGenerator(RandomProvider provider) { rng = Optional.of(provider.newInstance()); } }
@Override public void setRandomGenerator(RandomProvider provider) { assertNotSame(model.masterRandomGenerator, provider.newInstance()); } });