getObjectBoxModel function
ModelDefinition
getObjectBoxModel()
Returns the ObjectBox model definition for this project for use with obx.Store.new.
Implementation
obx_int.ModelDefinition getObjectBoxModel() {
final model = obx_int.ModelInfo(
entities: _entities,
lastEntityId: const obx_int.IdUid(3, 5552132049052643258),
lastIndexId: const obx_int.IdUid(13, 4044056724816938394),
lastRelationId: const obx_int.IdUid(0, 0),
lastSequenceId: const obx_int.IdUid(0, 0),
retiredEntityUids: const [5454060788371618184],
retiredIndexUids: const [],
retiredPropertyUids: const [
1193394587907611662,
9193266036610955617,
8774359902648244740,
7295914250334259545,
8954943725731155925,
5527448626657189885,
1947303555228418944,
],
retiredRelationUids: const [],
modelVersion: 5,
modelVersionParserMinimum: 5,
version: 1,
);
final bindings = <Type, obx_int.EntityDefinition>{
ChunkEntity: obx_int.EntityDefinition<ChunkEntity>(
model: _entities[0],
toOneRelations: (ChunkEntity object) => [],
toManyRelations: (ChunkEntity object) => {},
getId: (ChunkEntity object) => object.id,
setId: (ChunkEntity object, int id) {
object.id = id;
},
objectToFB: (ChunkEntity object, fb.Builder fbb) {
final chunkIdOffset = fbb.writeString(object.chunkId);
final sourcePathOffset = fbb.writeString(object.sourcePath);
final contentOffset = fbb.writeString(object.content);
final typeOffset = fbb.writeString(object.type);
final metadataJsonOffset = fbb.writeString(object.metadataJson);
fbb.startTable(9);
fbb.addInt64(0, object.id);
fbb.addOffset(1, chunkIdOffset);
fbb.addOffset(2, sourcePathOffset);
fbb.addInt64(3, object.lineStart);
fbb.addInt64(4, object.lineEnd);
fbb.addOffset(5, contentOffset);
fbb.addOffset(6, typeOffset);
fbb.addOffset(7, metadataJsonOffset);
fbb.finish(fbb.endTable());
return object.id;
},
objectFromFB: (obx.Store store, ByteData fbData) {
final buffer = fb.BufferContext(fbData);
final rootOffset = buffer.derefObject(0);
final idParam = const fb.Int64Reader().vTableGet(
buffer,
rootOffset,
4,
0,
);
final chunkIdParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 6, '');
final sourcePathParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 8, '');
final lineStartParam = const fb.Int64Reader().vTableGet(
buffer,
rootOffset,
10,
0,
);
final lineEndParam = const fb.Int64Reader().vTableGet(
buffer,
rootOffset,
12,
0,
);
final contentParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 14, '');
final typeParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 16, '');
final metadataJsonParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 18, '');
final object = ChunkEntity(
id: idParam,
chunkId: chunkIdParam,
sourcePath: sourcePathParam,
lineStart: lineStartParam,
lineEnd: lineEndParam,
content: contentParam,
type: typeParam,
metadataJson: metadataJsonParam,
);
return object;
},
),
EmbeddingEntity: obx_int.EntityDefinition<EmbeddingEntity>(
model: _entities[1],
toOneRelations: (EmbeddingEntity object) => [object.chunkRelation],
toManyRelations: (EmbeddingEntity object) => {},
getId: (EmbeddingEntity object) => object.id,
setId: (EmbeddingEntity object, int id) {
object.id = id;
},
objectToFB: (EmbeddingEntity object, fb.Builder fbb) {
final embeddingKeyOffset = fbb.writeString(object.embeddingKey);
final chunkIdOffset = fbb.writeString(object.chunkId);
final sourceOffset = fbb.writeString(object.source);
final modelNameOffset = fbb.writeString(object.modelName);
final vectorOffset = fbb.writeListFloat32(object.vector);
fbb.startTable(8);
fbb.addInt64(0, object.id);
fbb.addOffset(1, embeddingKeyOffset);
fbb.addOffset(2, chunkIdOffset);
fbb.addOffset(3, sourceOffset);
fbb.addOffset(4, modelNameOffset);
fbb.addOffset(5, vectorOffset);
fbb.addInt64(6, object.chunkRelation.targetId);
fbb.finish(fbb.endTable());
return object.id;
},
objectFromFB: (obx.Store store, ByteData fbData) {
final buffer = fb.BufferContext(fbData);
final rootOffset = buffer.derefObject(0);
final idParam = const fb.Int64Reader().vTableGet(
buffer,
rootOffset,
4,
0,
);
final embeddingKeyParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 6, '');
final chunkIdParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 8, '');
final sourceParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 10, '');
final modelNameParam = const fb.StringReader(
asciiOptimization: true,
).vTableGet(buffer, rootOffset, 12, '');
final vectorParam = const obx_int.Float32ListReader().vTableGet(
buffer,
rootOffset,
14,
Float32List(0),
);
final object = EmbeddingEntity(
id: idParam,
embeddingKey: embeddingKeyParam,
chunkId: chunkIdParam,
source: sourceParam,
modelName: modelNameParam,
vector: vectorParam,
);
object.chunkRelation.targetId = const fb.Int64Reader().vTableGet(
buffer,
rootOffset,
16,
0,
);
object.chunkRelation.attach(store);
return object;
},
),
};
return obx_int.ModelDefinition(model, bindings);
}