Class KsuidCreator

java.lang.Object
uno.xifan.id.generator.ksuid.KsuidCreator

public final class KsuidCreator extends Object
A class that generates KSUIDs.

All 3 types of KSUID can be easily created by this generator, i.e. non-monotonic (Segment's), monotonic and sub-second.

  • Method Details

    • getKsuid

      public static Ksuid getKsuid()
      Returns a Segment's KSUID.
      Returns:
      a KSUID
    • getSubsecondKsuid

      public static Ksuid getSubsecondKsuid()
      Returns a KSUID with sub-second precision.

      Three sub-second precisions are supported: millisecond, microsecond, and nanosecond. The precision is detected at runtime.

      Returns:
      a KSUID
    • getMonotonicKsuid

      public static Ksuid getMonotonicKsuid()
      Returns a Monotonic KSUID.

      If more than one KSUID is generated within the same second, the payload is incremented by one.

      Returns:
      a KSUID
    • getKsuid

      public static Ksuid getKsuid(Instant instant)
      Returns a Segment's KSUID.
      Parameters:
      instant - an instant
      Returns:
      a KSUID
    • getSubsecondKsuid

      public static Ksuid getSubsecondKsuid(Instant instant)
      Returns a KSUID with sub-second precision.

      Three sub-second precisions are supported: millisecond, microsecond, and nanosecond. The precision is detected at runtime.

      Parameters:
      instant - an instant
      Returns:
      a KSUID
    • getMonotonicKsuid

      public static Ksuid getMonotonicKsuid(Instant instant)
      Returns a Monotonic KSUID.

      If more than one KSUID is generated within the same second, the payload is incremented by one.

      Parameters:
      instant - an instant
      Returns:
      a KSUID