Package org.bson.types
Class ObjectId
- java.lang.Object
-
- org.bson.types.ObjectId
-
- All Implemented Interfaces:
Serializable
,Comparable<ObjectId>
public final class ObjectId extends Object implements Comparable<ObjectId>, Serializable
A globally unique identifier for objects.
Consists of 12 bytes, divided as follows:
ObjectID layout 0 1 2 3 4 5 6 7 8 9 10 11 time random value inc Instances of this class are immutable.
- See Also:
- Serialized Form
- MongoDB documentation
- ObjectId
-
-
Constructor Summary
Constructors Constructor Description ObjectId()
Create a new object id.ObjectId(byte[] bytes)
Constructs a new instance from the given byte arrayObjectId(int timestamp, int counter)
Creates an ObjectId using the given time, machine identifier, process identifier, and counter.ObjectId(String hexString)
Constructs a new instance from a 24-byte hexadecimal string representation.ObjectId(ByteBuffer buffer)
Constructs a new instance from the given ByteBufferObjectId(Date date)
Constructs a new instance using the given date.ObjectId(Date date, int counter)
Constructs a new instances using the given date and counter.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ObjectId other)
boolean
equals(Object o)
static ObjectId
get()
Gets a new object id.Date
getDate()
Gets the timestamp as aDate
instance.int
getTimestamp()
Gets the timestamp (number of seconds since the Unix epoch).int
hashCode()
static boolean
isValid(String hexString)
Checks if a string could be anObjectId
.void
putToByteBuffer(ByteBuffer buffer)
Convert to bytes and put those bytes to the provided ByteBuffer.byte[]
toByteArray()
Convert to a byte array.String
toHexString()
Converts this instance into a 24-byte hexadecimal string representation.String
toString()
-
-
-
Constructor Detail
-
ObjectId
public ObjectId()
Create a new object id.
-
ObjectId
public ObjectId(Date date)
Constructs a new instance using the given date.- Parameters:
date
- the date
-
ObjectId
public ObjectId(Date date, int counter)
Constructs a new instances using the given date and counter.- Parameters:
date
- the datecounter
- the counter- Throws:
IllegalArgumentException
- if the high order byte of counter is not zero
-
ObjectId
public ObjectId(int timestamp, int counter)
Creates an ObjectId using the given time, machine identifier, process identifier, and counter.- Parameters:
timestamp
- the time in secondscounter
- the counter- Throws:
IllegalArgumentException
- if the high order byte of counter is not zero
-
ObjectId
public ObjectId(String hexString)
Constructs a new instance from a 24-byte hexadecimal string representation.- Parameters:
hexString
- the string to convert- Throws:
IllegalArgumentException
- if the string is not a valid hex string representation of an ObjectId
-
ObjectId
public ObjectId(byte[] bytes)
Constructs a new instance from the given byte array- Parameters:
bytes
- the byte array- Throws:
IllegalArgumentException
- if array is null or not of length 12
-
ObjectId
public ObjectId(ByteBuffer buffer)
Constructs a new instance from the given ByteBuffer- Parameters:
buffer
- the ByteBuffer- Throws:
IllegalArgumentException
- if the buffer is null or does not have at least 12 bytes remaining- Since:
- 3.4
-
-
Method Detail
-
get
public static ObjectId get()
Gets a new object id.- Returns:
- the new id
-
isValid
public static boolean isValid(String hexString)
Checks if a string could be anObjectId
.- Parameters:
hexString
- a potential ObjectId as a String.- Returns:
- whether the string could be an object id
- Throws:
IllegalArgumentException
- if hexString is null
-
toByteArray
public byte[] toByteArray()
Convert to a byte array. Note that the numbers are stored in big-endian order.- Returns:
- the byte array
-
putToByteBuffer
public void putToByteBuffer(ByteBuffer buffer)
Convert to bytes and put those bytes to the provided ByteBuffer. Note that the numbers are stored in big-endian order.- Parameters:
buffer
- the ByteBuffer- Throws:
IllegalArgumentException
- if the buffer is null or does not have at least 12 bytes remaining- Since:
- 3.4
-
getTimestamp
public int getTimestamp()
Gets the timestamp (number of seconds since the Unix epoch).- Returns:
- the timestamp
-
getDate
public Date getDate()
Gets the timestamp as aDate
instance.- Returns:
- the Date
-
toHexString
public String toHexString()
Converts this instance into a 24-byte hexadecimal string representation.- Returns:
- a string representation of the ObjectId in hexadecimal format
-
compareTo
public int compareTo(ObjectId other)
- Specified by:
compareTo
in interfaceComparable<ObjectId>
-
-