From 36855d4b9927566a8912b47a89951e837b7c16b0 Mon Sep 17 00:00:00 2001 From: Fabio Lima Date: Wed, 26 Apr 2023 03:36:14 -0300 Subject: [PATCH] regular maintenance --- .../java/com/github/f4b6a3/ulid/Ulid.java | 90 ++++--------------- 1 file changed, 19 insertions(+), 71 deletions(-) diff --git a/src/main/java/com/github/f4b6a3/ulid/Ulid.java b/src/main/java/com/github/f4b6a3/ulid/Ulid.java index 7a30bf2..29b0d68 100644 --- a/src/main/java/com/github/f4b6a3/ulid/Ulid.java +++ b/src/main/java/com/github/f4b6a3/ulid/Ulid.java @@ -89,84 +89,32 @@ public final class Ulid implements Serializable, Comparable { */ public static final Ulid MAX = new Ulid(0xffffffffffffffffL, 0xffffffffffffffffL); - private static final char[] ALPHABET_UPPERCASE = // - { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', // - 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', // - 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'V', 'W', 'X', 'Y', 'Z' }; - - private static final char[] ALPHABET_LOWERCASE = // - { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', // - 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j', 'k', // - 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' }; - private static final byte[] ALPHABET_VALUES = new byte[256]; + private static final char[] ALPHABET_UPPERCASE = "0123456789ABCDEFGHJKMNPQRSTVWXYZ".toCharArray(); + private static final char[] ALPHABET_LOWERCASE = "0123456789abcdefghjkmnpqrstvwxyz".toCharArray(); + static { + + // Initialize the alphabet map with -1 Arrays.fill(ALPHABET_VALUES, (byte) -1); - // Numbers - ALPHABET_VALUES['0'] = 0x00; - ALPHABET_VALUES['1'] = 0x01; - ALPHABET_VALUES['2'] = 0x02; - ALPHABET_VALUES['3'] = 0x03; - ALPHABET_VALUES['4'] = 0x04; - ALPHABET_VALUES['5'] = 0x05; - ALPHABET_VALUES['6'] = 0x06; - ALPHABET_VALUES['7'] = 0x07; - ALPHABET_VALUES['8'] = 0x08; - ALPHABET_VALUES['9'] = 0x09; - // Lower case - ALPHABET_VALUES['a'] = 0x0a; - ALPHABET_VALUES['b'] = 0x0b; - ALPHABET_VALUES['c'] = 0x0c; - ALPHABET_VALUES['d'] = 0x0d; - ALPHABET_VALUES['e'] = 0x0e; - ALPHABET_VALUES['f'] = 0x0f; - ALPHABET_VALUES['g'] = 0x10; - ALPHABET_VALUES['h'] = 0x11; - ALPHABET_VALUES['j'] = 0x12; - ALPHABET_VALUES['k'] = 0x13; - ALPHABET_VALUES['m'] = 0x14; - ALPHABET_VALUES['n'] = 0x15; - ALPHABET_VALUES['p'] = 0x16; - ALPHABET_VALUES['q'] = 0x17; - ALPHABET_VALUES['r'] = 0x18; - ALPHABET_VALUES['s'] = 0x19; - ALPHABET_VALUES['t'] = 0x1a; - ALPHABET_VALUES['v'] = 0x1b; - ALPHABET_VALUES['w'] = 0x1c; - ALPHABET_VALUES['x'] = 0x1d; - ALPHABET_VALUES['y'] = 0x1e; - ALPHABET_VALUES['z'] = 0x1f; - // Lower case OIL - ALPHABET_VALUES['o'] = 0x00; - ALPHABET_VALUES['i'] = 0x01; - ALPHABET_VALUES['l'] = 0x01; - // Upper case - ALPHABET_VALUES['A'] = 0x0a; - ALPHABET_VALUES['B'] = 0x0b; - ALPHABET_VALUES['C'] = 0x0c; - ALPHABET_VALUES['D'] = 0x0d; - ALPHABET_VALUES['E'] = 0x0e; - ALPHABET_VALUES['F'] = 0x0f; - ALPHABET_VALUES['G'] = 0x10; - ALPHABET_VALUES['H'] = 0x11; - ALPHABET_VALUES['J'] = 0x12; - ALPHABET_VALUES['K'] = 0x13; - ALPHABET_VALUES['M'] = 0x14; - ALPHABET_VALUES['N'] = 0x15; - ALPHABET_VALUES['P'] = 0x16; - ALPHABET_VALUES['Q'] = 0x17; - ALPHABET_VALUES['R'] = 0x18; - ALPHABET_VALUES['S'] = 0x19; - ALPHABET_VALUES['T'] = 0x1a; - ALPHABET_VALUES['V'] = 0x1b; - ALPHABET_VALUES['W'] = 0x1c; - ALPHABET_VALUES['X'] = 0x1d; - ALPHABET_VALUES['Y'] = 0x1e; - ALPHABET_VALUES['Z'] = 0x1f; + + // Map the alphabets chars to values + for (int i = 0; i < ALPHABET_UPPERCASE.length; i++) { + ALPHABET_VALUES[ALPHABET_UPPERCASE[i]] = (byte) i; + } + for (int i = 0; i < ALPHABET_LOWERCASE.length; i++) { + ALPHABET_VALUES[ALPHABET_LOWERCASE[i]] = (byte) i; + } + // Upper case OIL ALPHABET_VALUES['O'] = 0x00; ALPHABET_VALUES['I'] = 0x01; ALPHABET_VALUES['L'] = 0x01; + + // Lower case OIL + ALPHABET_VALUES['o'] = 0x00; + ALPHABET_VALUES['i'] = 0x01; + ALPHABET_VALUES['l'] = 0x01; } // 0xffffffffffffffffL + 1 = 0x0000000000000000L