Copied more code from uuid-creator
This commit is contained in:
parent
3fbe5c5c1b
commit
63bee56534
|
@ -37,11 +37,9 @@ import com.github.f4b6a3.ulid.util.UlidUtil;
|
||||||
*/
|
*/
|
||||||
public class UlidCreator {
|
public class UlidCreator {
|
||||||
|
|
||||||
|
|
||||||
private UlidCreator() {
|
private UlidCreator() {
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: not working yet
|
|
||||||
public static String getUlid() {
|
public static String getUlid() {
|
||||||
UUID guid = getLexicalOrderGuid();
|
UUID guid = getLexicalOrderGuid();
|
||||||
return UlidUtil.fromUuidToUlid(guid);
|
return UlidUtil.fromUuidToUlid(guid);
|
||||||
|
|
|
@ -46,10 +46,8 @@ public class UlidUtil {
|
||||||
* @return a ULID
|
* @return a ULID
|
||||||
*/
|
*/
|
||||||
public static String fromUuidToUlid(UUID uuid) {
|
public static String fromUuidToUlid(UUID uuid) {
|
||||||
// TODO: not working yet
|
byte[] bytes = fromUuidToBytes(uuid);
|
||||||
// byte[] bytes = UuidUtil.fromUuidToBytes(uuid);
|
return fromBytesToUlid(bytes);
|
||||||
// return fromBytesToUlid(bytes);
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -62,10 +60,38 @@ public class UlidUtil {
|
||||||
* @return a UUID if valid
|
* @return a UUID if valid
|
||||||
*/
|
*/
|
||||||
public static UUID fromUlidToUuid(String ulid) {
|
public static UUID fromUlidToUuid(String ulid) {
|
||||||
// TODO: not working yet
|
byte[] bytes = fromUlidToBytes(ulid);
|
||||||
// byte[] bytes = fromUlidToBytes(ulid);
|
return fromBytesToUuid(bytes);
|
||||||
// return UuidUtil.fromBytesToUuid(bytes);
|
}
|
||||||
return null;
|
|
||||||
|
/**
|
||||||
|
* Get the array of bytes from a UUID.
|
||||||
|
*
|
||||||
|
* @param uuid
|
||||||
|
* a UUID
|
||||||
|
* @return an array of bytes
|
||||||
|
*/
|
||||||
|
public static byte[] fromUuidToBytes(UUID uuid) {
|
||||||
|
long msb = uuid.getMostSignificantBits();
|
||||||
|
long lsb = uuid.getLeastSignificantBits();
|
||||||
|
byte[] msbBytes = ByteUtil.toBytes(msb);
|
||||||
|
byte[] lsbBytes = ByteUtil.toBytes(lsb);
|
||||||
|
return ByteUtil.concat(msbBytes, lsbBytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get a UUID from an array of bytes;
|
||||||
|
*
|
||||||
|
* @param bytes
|
||||||
|
* an array of bytes
|
||||||
|
* @return a UUID
|
||||||
|
*/
|
||||||
|
public static UUID fromBytesToUuid(byte[] bytes) {
|
||||||
|
byte[] msbBytes = ByteUtil.copy(bytes, 0, 8);
|
||||||
|
byte[] lsbBytes = ByteUtil.copy(bytes, 8, 16);
|
||||||
|
long msb = ByteUtil.toNumber(msbBytes);
|
||||||
|
long lsb = ByteUtil.toNumber(lsbBytes);
|
||||||
|
return new UUID(msb, lsb);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,9 +1,10 @@
|
||||||
package com.github.f4b6a3.ulid.factory;
|
package com.github.f4b6a3;
|
||||||
|
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
import org.junit.runners.Suite;
|
import org.junit.runners.Suite;
|
||||||
|
|
||||||
import com.github.f4b6a3.ulid.UlidCreatorTest;
|
import com.github.f4b6a3.ulid.UlidCreatorTest;
|
||||||
|
import com.github.f4b6a3.ulid.factory.LexicalOrderGuidCreatorTest;
|
||||||
import com.github.f4b6a3.ulid.random.NaiveRandomTest;
|
import com.github.f4b6a3.ulid.random.NaiveRandomTest;
|
||||||
import com.github.f4b6a3.ulid.timestamp.DefaultTimestampStrategyTest;
|
import com.github.f4b6a3.ulid.timestamp.DefaultTimestampStrategyTest;
|
||||||
import com.github.f4b6a3.ulid.util.Base32UtilTest;
|
import com.github.f4b6a3.ulid.util.Base32UtilTest;
|
|
@ -6,6 +6,7 @@ import java.util.UUID;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
import com.github.f4b6a3.ulid.exception.UlidCreatorException;
|
import com.github.f4b6a3.ulid.exception.UlidCreatorException;
|
||||||
|
import com.github.f4b6a3.ulid.factory.LexicalOrderGuidCreator.LexicalOrderGuidException;
|
||||||
import com.github.f4b6a3.ulid.random.Xorshift128PlusRandom;
|
import com.github.f4b6a3.ulid.random.Xorshift128PlusRandom;
|
||||||
import com.github.f4b6a3.ulid.timestamp.FixedTimestampStretegy;
|
import com.github.f4b6a3.ulid.timestamp.FixedTimestampStretegy;
|
||||||
|
|
||||||
|
@ -108,7 +109,7 @@ public class LexicalOrderGuidCreatorTest {
|
||||||
assertEquals(String.format("The MSB should be iqual to %s.", expected), expected, randomMsb);
|
assertEquals(String.format("The MSB should be iqual to %s.", expected), expected, randomMsb);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test(expected = UlidCreatorException.class)
|
@Test(expected = LexicalOrderGuidException.class)
|
||||||
public void testShouldThrowOverflowException() {
|
public void testShouldThrowOverflowException() {
|
||||||
|
|
||||||
long low = MAX_LOW - DEFAULT_LOOP;
|
long low = MAX_LOW - DEFAULT_LOOP;
|
||||||
|
|
|
@ -1,5 +1,12 @@
|
||||||
package com.github.f4b6a3.ulid.timestamp;
|
package com.github.f4b6a3.ulid.timestamp;
|
||||||
|
|
||||||
|
import static org.junit.Assert.assertTrue;
|
||||||
|
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
public class DefaultTimestampStrategyTest {
|
public class DefaultTimestampStrategyTest {
|
||||||
// TODO
|
@Test
|
||||||
|
public void testVoid() {
|
||||||
|
assertTrue("void test", true);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue