Class RecordTypeBuilder
- java.lang.Object
-
- com.apple.foundationdb.record.metadata.RecordTypeIndexesBuilder
-
- com.apple.foundationdb.record.metadata.RecordTypeBuilder
-
- All Implemented Interfaces:
RecordTypeOrBuilder
@API(MAINTAINED) public class RecordTypeBuilder extends RecordTypeIndexesBuilder implements RecordTypeOrBuilder
A builder forRecordType
. A record type consists of:- name.
- Protobuf
Descriptors.Descriptor
. - primary key expression.
- optional secondary indexes.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
RecordTypeBuilder.NonbuildableException
Exception thrown when aRecordTypeBuilder
is not yet in a state where it can be built.
-
Field Summary
-
Fields inherited from class com.apple.foundationdb.record.metadata.RecordTypeIndexesBuilder
indexes, multiTypeIndexes, name, recordTypeKey
-
-
Constructor Summary
Constructors Constructor Description RecordTypeBuilder(Descriptors.Descriptor descriptor)
RecordTypeBuilder(Descriptors.Descriptor descriptor, RecordTypeBuilder other)
Copy constructor forRecordTypeBuilder
that copies all fields except the descriptor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description RecordType
build(RecordMetaData metaData)
Descriptors.Descriptor
getDescriptor()
Get the descriptor of the underlying message type.KeyExpression
getPrimaryKey()
Gets the primary key expression for this record type.Integer
getSinceVersion()
Gets a metadata version, which shows when this record type got introduced in the metadata.void
setPrimaryKey(KeyExpression primaryKey)
RecordTypeBuilder
setRecordTypeKey(Object recordTypeKey)
void
setSinceVersion(Integer sinceVersion)
-
Methods inherited from class com.apple.foundationdb.record.metadata.RecordTypeIndexesBuilder
getIndexes, getMultiTypeIndexes, getName, getRecordTypeKey
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.metadata.RecordTypeOrBuilder
getIndexes, getMultiTypeIndexes, getName, getRecordTypeKey
-
-
-
-
Constructor Detail
-
RecordTypeBuilder
public RecordTypeBuilder(@Nonnull Descriptors.Descriptor descriptor)
-
RecordTypeBuilder
public RecordTypeBuilder(@Nonnull Descriptors.Descriptor descriptor, @Nonnull RecordTypeBuilder other)
Copy constructor forRecordTypeBuilder
that copies all fields except the descriptor.- Parameters:
descriptor
- the descriptor of the new record typeother
- the record type builder to copy from
-
-
Method Detail
-
setRecordTypeKey
public RecordTypeBuilder setRecordTypeKey(@Nullable Object recordTypeKey)
- Overrides:
setRecordTypeKey
in classRecordTypeIndexesBuilder
-
getDescriptor
@Nonnull public Descriptors.Descriptor getDescriptor()
Description copied from interface:RecordTypeOrBuilder
Get the descriptor of the underlying message type. This specifies what fields the record will have and what their types should be.- Specified by:
getDescriptor
in interfaceRecordTypeOrBuilder
- Returns:
- the message type descriptor
-
getPrimaryKey
@Nullable public KeyExpression getPrimaryKey()
Description copied from interface:RecordTypeOrBuilder
Gets the primary key expression for this record type. Records of this type are inserted based on the value of this key expression when evaluated on the record.- Specified by:
getPrimaryKey
in interfaceRecordTypeOrBuilder
- Returns:
- the primary key expression for this record type
-
setPrimaryKey
public void setPrimaryKey(@Nonnull KeyExpression primaryKey)
-
getSinceVersion
@Nullable public Integer getSinceVersion()
Description copied from interface:RecordTypeOrBuilder
Gets a metadata version, which shows when this record type got introduced in the metadata. This information is used to skip index rebuild for indices on new record types.- Specified by:
getSinceVersion
in interfaceRecordTypeOrBuilder
- Returns:
- metadata version when this type is introduced (
null
if this information is not available)
-
build
public RecordType build(@Nonnull RecordMetaData metaData)
-
-