Skip to content

Kotlin BSON • Multiplatform abstraction for different BSON implementationsopensavvy.ktmongo.bson.typesObjectIdGenerator

ObjectIdGenerator

interface ObjectIdGenerator

An object responsible for generating new ObjectId instances.

This object is similar to kotlin.time.Clock: a Clock is a way to generate Instant instances, and services that need to generate instants should receive a clock via dependency injection. Similarly, services that generate IDs should get a generator via dependency injection.

To get the real generator instance, see the database's opensavvy.ktmongo.bson.BsonContext.

Inheritors

Types

Companion

object Companion

Default

@ExperimentalAtomicApi
@ExperimentalTime
class Default(clock: Clock = Clock.System, random: Random = Random, processId: Long = random.nextLong(0, ObjectId.PROCESS_ID_BOUND)) : ObjectIdGenerator

The default ObjectIdGenerator, implementing the MongoDB ObjectId generation algorithm.

Hardcoded

Hardcoded ObjectId generator with a deterministic input sequence.

Functions

newId

@ExperimentalTime
abstract fun newId(): ObjectId

Creates a new instance of an ObjectId.