View Javadoc
1   package pk.lucidxpo.ynami.utils;
2   
3   import java.security.SecureRandom;
4   import java.util.UUID;
5   
6   import static java.lang.Integer.MAX_VALUE;
7   import static org.apache.commons.lang3.StringUtils.remove;
8   
9   public final class Identity {
10  
11      private static final int MAX_DIGITS = 12;
12      private static final int RANDOM_DIGITS_9 = 9;
13      private static final int RANDOM_DIGITS_10 = 10;
14      private static final int RANDOM_DIGITS_11 = 11;
15  
16      private static final SecureRandom RANDOM = new SecureRandom();
17  
18      public static int randomInt() {
19          return RANDOM.nextInt(MAX_VALUE);
20      }
21  
22      public static int randomInt(final int minValue, final int maxValue) {
23          return minValue + RANDOM.nextInt(maxValue - minValue);
24      }
25  
26      public static String randomID(final int digits) {
27          return randomID("", digits);
28      }
29  
30      public static String randomID() {
31          return remove(randomUUID(), "-");
32      }
33  
34      public static String randomUUID() {
35          return UUID.randomUUID().toString();
36      }
37  
38      public static String randomID9(final String prefix) {
39          return randomID(prefix, RANDOM_DIGITS_9);
40      }
41  
42      public static String randomID11(final String prefix) {
43          return randomID(prefix, RANDOM_DIGITS_11);
44      }
45  
46      public static String randomID12(final String prefix) {
47          return randomID(prefix, MAX_DIGITS);
48      }
49  
50      public static String randomID(final String prefix, final int digits) {
51          final int len = prefix.length() + digits;
52          final StringBuilder buf = new StringBuilder(len);
53          buf.append(prefix);
54          for (int i = 0; i < digits; i++) {
55              buf.append(RANDOM.nextInt(RANDOM_DIGITS_10));
56          }
57          return buf.toString();
58      }
59  }