Class FDBStoredRecord<M extends Message>
- java.lang.Object
-
- com.apple.foundationdb.record.provider.foundationdb.FDBStoredRecord<M>
-
- Type Parameters:
M
- type used to represent stored records
- All Implemented Interfaces:
FDBIndexableRecord<M>
,FDBRecord<M>
,FDBStoredSizes
@API(MAINTAINED) public class FDBStoredRecord<M extends Message> extends Object implements FDBIndexableRecord<M>
A record stored in the database. Adds information about storage sizes from saving or retrieving.
-
-
Constructor Summary
Constructors Constructor Description FDBStoredRecord(Tuple primaryKey, RecordType recordType, M record, int keyCount, int keySize, int valueSize, boolean split, boolean versionedInline, FDBRecordVersion recordVersion)
FDBStoredRecord(Tuple primaryKey, RecordType recordType, M record, FDBStoredSizes size, FDBRecordVersion recordVersion)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
int
getKeyCount()
Get the number of keys used to store this record.int
getKeySize()
Get the size in bytes of all keys used to store this record.Tuple
getPrimaryKey()
Get the primary key for this record.M
getRecord()
Get the Protobuf message form of this record.RecordType
getRecordType()
Get the record type for this record.int
getValueSize()
Get the size in bytes of all values used to store this record.FDBRecordVersion
getVersion()
Get theFDBRecordVersion
associated with this record (ornull
).int
hashCode()
boolean
hasVersion()
Get whether aFDBRecordVersion
has been set for thisStoredRecord
.boolean
isSplit()
Get whether this record is split between two or more key-value pairs.boolean
isVersionedInline()
Get whether this record was stored with an associated version.static <M extends Message>
FDBStoredRecordBuilder<M>newBuilder()
Get a builder for a stored record.static <M extends Message>
FDBStoredRecordBuilder<M>newBuilder(M record)
Get a builder for a stored record.String
toString()
FDBStoredRecord<M>
withCommittedVersion(byte[] committedVersion)
Get this record with an updated version after committing.FDBStoredRecord<M>
withVersion(FDBRecordVersion recordVersion)
Copy this record with a different version.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.provider.foundationdb.FDBStoredSizes
addSizeLogInfo
-
-
-
-
Constructor Detail
-
FDBStoredRecord
public FDBStoredRecord(@Nonnull Tuple primaryKey, @Nonnull RecordType recordType, @Nonnull M record, @Nonnull FDBStoredSizes size, @Nullable FDBRecordVersion recordVersion)
-
FDBStoredRecord
@API(INTERNAL) public FDBStoredRecord(@Nonnull Tuple primaryKey, @Nonnull RecordType recordType, @Nonnull M record, int keyCount, int keySize, int valueSize, boolean split, boolean versionedInline, @Nullable FDBRecordVersion recordVersion)
-
-
Method Detail
-
getPrimaryKey
@Nonnull public Tuple getPrimaryKey()
Description copied from interface:FDBRecord
Get the primary key for this record.- Specified by:
getPrimaryKey
in interfaceFDBRecord<M extends Message>
- Returns:
- primary key for this record
-
getRecordType
@Nonnull public RecordType getRecordType()
Description copied from interface:FDBRecord
Get the record type for this record.- Specified by:
getRecordType
in interfaceFDBRecord<M extends Message>
- Returns:
- record type for this record
-
getRecord
@Nonnull public M getRecord()
Description copied from interface:FDBRecord
Get the Protobuf message form of this record.
-
hasVersion
public boolean hasVersion()
Description copied from interface:FDBRecord
Get whether aFDBRecordVersion
has been set for thisStoredRecord
.- Specified by:
hasVersion
in interfaceFDBRecord<M extends Message>
- Returns:
true
if this record has a version
-
getVersion
@Nullable public FDBRecordVersion getVersion()
Description copied from interface:FDBRecord
Get theFDBRecordVersion
associated with this record (ornull
).- Specified by:
getVersion
in interfaceFDBRecord<M extends Message>
- Returns:
- the version for this record
-
getKeyCount
public int getKeyCount()
Description copied from interface:FDBStoredSizes
Get the number of keys used to store this record.- Specified by:
getKeyCount
in interfaceFDBStoredSizes
- Returns:
- number of keys
-
getKeySize
public int getKeySize()
Description copied from interface:FDBStoredSizes
Get the size in bytes of all keys used to store this record.- Specified by:
getKeySize
in interfaceFDBStoredSizes
- Returns:
- size in bytes
-
getValueSize
public int getValueSize()
Description copied from interface:FDBStoredSizes
Get the size in bytes of all values used to store this record.- Specified by:
getValueSize
in interfaceFDBStoredSizes
- Returns:
- size in bytes
-
isSplit
public boolean isSplit()
Description copied from interface:FDBStoredSizes
Get whether this record is split between two or more key-value pairs.- Specified by:
isSplit
in interfaceFDBStoredSizes
- Returns:
true
if split
-
isVersionedInline
public boolean isVersionedInline()
Description copied from interface:FDBStoredSizes
Get whether this record was stored with an associated version. In particular, this states whether there was a version stored directly with the record in the database, which should only be true if the format version of the database is greater than or equal toFDBRecordStore.SAVE_VERSION_WITH_RECORD_FORMAT_VERSION
.- Specified by:
isVersionedInline
in interfaceFDBStoredSizes
- Returns:
true
if this record is stored with a version in-line
-
newBuilder
@Nonnull public static <M extends Message> FDBStoredRecordBuilder<M> newBuilder()
Get a builder for a stored record.- Type Parameters:
M
- type used to represent stored records- Returns:
- a new uninitialized builder
-
newBuilder
@Nonnull public static <M extends Message> FDBStoredRecordBuilder<M> newBuilder(@Nonnull M record)
Get a builder for a stored record.- Type Parameters:
M
- type used to represent stored records- Parameters:
record
- Protobuf record- Returns:
- a new builder initialized with the record
-
withVersion
@Nonnull public FDBStoredRecord<M> withVersion(@Nullable FDBRecordVersion recordVersion)
Copy this record with a different version.- Parameters:
recordVersion
- new version- Returns:
- a new stored record with the given version
-
withCommittedVersion
@Nonnull public FDBStoredRecord<M> withCommittedVersion(@Nullable byte[] committedVersion)
Get this record with an updated version after committing. If this record has an incomplete version, it is completed with the given version stamp. If the version is already complete or this record does not have a version, this record is returned.- Parameters:
committedVersion
- the result ofFDBRecordContext.getVersionStamp()
- Returns:
- a stored record with the given version
-
-