package org.embulk; import java.util.Map; import java.util.Random; public class RandomManager { protected long seed; protected Random random; public RandomManager() { this(getDefaultSeed()); } public RandomManager(long seed) { this.seed = seed; this.random = new Random(seed); System.out.println(" Random seed: 0x"+Long.toHexString(seed)+"L"); } public long getRandomSeed() { return seed; } public void setRandomSeed(long seed) { random.setSeed(seed); this.seed = seed; System.out.println(" Set random seed: 0x"+Long.toHexString(this.seed)+"L"); } public Random getRandom() { return random; } private static long getDefaultSeed() { Map<String, String> env = System.getenv(); String s = env.get("RANDOM_SEED"); try { if(s != null) { return Long.parseLong(s); } } catch (NumberFormatException e) { System.out.println("RANDOM_SEED variable is wrong: "+e); } return new Random().nextLong(); } }