com.github.javafaker.service.RandomService Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of javafaker Show documentation
Show all versions of javafaker Show documentation
This library is a port of Ruby's stympy/faker gem (as well as Perl's Data::Faker library) that generates fake data.
It's useful when you're developing a new project and need some pretty data for showcase.
package com.github.javafaker.service;
import java.util.Random;
public class RandomService {
private static final Random SHARED_RANDOM = new Random();
private final Random random;
/**
* Uses a default shared random.
*/
public RandomService() {
this(SHARED_RANDOM);
}
/**
* @param random If null is passed in, a default Random is assigned
*/
public RandomService(Random random) {
this.random = random != null ? random : SHARED_RANDOM;
}
public int nextInt(int n) {
return random.nextInt(n);
}
public long nextLong() {
return random.nextLong();
}
// lifted from http://stackoverflow.com/questions/2546078/java-random-long-number-in-0-x-n-range
public long nextLong(long n) {
if (n <= 0) {
throw new IllegalArgumentException("bound must be positive");
}
long bits, val;
do {
long randomLong = random.nextLong();
bits = (randomLong << 1) >>> 1;
val = bits % n;
} while (bits - val + (n - 1) < 0L);
return val;
}
public double nextDouble() {
return random.nextDouble();
}
public Boolean nextBoolean() {
return random.nextBoolean();
}
public Integer nextInt(int min, int max) {
return random.nextInt((max - min) + 1) + min;
}
public String hex() {
return hex(8);
}
public String hex(int length) {
char[] hexValues = new char[]{'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'};
StringBuilder hexString = new StringBuilder();
for(int i = 0; i < length; i++) {
hexString.append(hexValues[nextInt(hexValues.length)]);
}
return hexString.toString();
}
}