package org.oneandone.idev.johanna.store.id;
import java.util.Objects;
import java.util.UUID;
/**
*
* @author kiesel
*/
public class UUIDIdentifier extends Identifier {
private final UUID id;
public UUIDIdentifier(String prefix, IdentifierFactory identifierFactory) {
super(prefix, identifierFactory);
this.id= UUID.randomUUID();
}
public UUIDIdentifier(String prefix, UUID id, IdentifierFactory identifierFactory) {
super(prefix, identifierFactory);
this.id= Objects.requireNonNull(id);
}
public UUIDIdentifier(IdentifierFactory identifierFactory) {
this("", identifierFactory);
}
public static UUIDIdentifier forId(String id, IdentifierFactory identifierFactory) {
return new UUIDIdentifier(
prefixPartOf(id, identifierFactory),
UUID.fromString(uniquePartOf(id, identifierFactory)),
identifierFactory
);
}
@Override
protected String uniqid() {
return this.id.toString();
}
}