]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.api.uuid/src/org/argeo/api/uuid/libuuid/LibuuidFactory.java
Introduce UUID identified and openForEdit/freeze cycle
[lgpl/argeo-commons.git] / org.argeo.api.uuid / src / org / argeo / api / uuid / libuuid / LibuuidFactory.java
1 package org.argeo.api.uuid.libuuid;
2
3 import java.util.UUID;
4
5 import org.argeo.api.uuid.TypedUuidFactory;
6 import org.argeo.api.uuid.UuidFactory;
7
8 /** An {@link UuidFactory} based on a native library. */
9 public class LibuuidFactory implements UuidFactory, TypedUuidFactory {
10 static {
11 System.loadLibrary("Java_org_argeo_api_uuid_libuuid");
12 }
13
14 @Override
15 public UUID get() {
16 return timeUUID();
17 }
18
19 @Override
20 public native UUID timeUUID();
21
22 @Override
23 public native UUID nameUUIDv5(UUID namespace, byte[] data);
24
25 @Override
26 public native UUID nameUUIDv3(UUID namespace, byte[] data);
27
28 @Override
29 public native UUID randomUUIDStrong();
30
31 @Override
32 public UUID randomUUIDWeak() {
33 return randomUUIDStrong();
34 }
35
36 }