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(1, 8272272557006263034),
      lastIndexId: const obx_int.IdUid(0, 0),
      lastRelationId: const obx_int.IdUid(0, 0),
      lastSequenceId: const obx_int.IdUid(0, 0),
      retiredEntityUids: const [],
      retiredIndexUids: const [],
      retiredPropertyUids: const [],
      retiredRelationUids: const [],
      modelVersion: 5,
      modelVersionParserMinimum: 5,
      version: 1);

  final bindings = <Type, obx_int.EntityDefinition>{
    CachedImageModel: obx_int.EntityDefinition<CachedImageModel>(
        model: _entities[0],
        toOneRelations: (CachedImageModel object) => [],
        toManyRelations: (CachedImageModel object) => {},
        getId: (CachedImageModel object) => object.id,
        setId: (CachedImageModel object, int id) {
          object.id = id;
        },
        objectToFB: (CachedImageModel object, fb.Builder fbb) {
          final filenameOffset = fbb.writeString(object.filename);
          final dataOffset = fbb.writeListInt8(object.data);
          fbb.startTable(6);
          fbb.addInt64(0, object.id);
          fbb.addOffset(1, filenameOffset);
          fbb.addOffset(2, dataOffset);
          fbb.addInt64(3, object.createdAt);
          fbb.addInt64(4, object.futureRefresh);
          fbb.finish(fbb.endTable());
          return object.id;
        },
        objectFromFB: (obx.Store store, ByteData fbData) {
          final buffer = fb.BufferContext(fbData);
          final rootOffset = buffer.derefObject(0);
          final createdAtParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 10, 0);
          final dataParam = const fb.Uint8ListReader(lazy: false)
              .vTableGet(buffer, rootOffset, 8, Uint8List(0)) as Uint8List;
          final filenameParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 6, '');
          final futureRefreshParam =
              const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 12);
          final idParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);
          final object = CachedImageModel(
              createdAt: createdAtParam,
              data: dataParam,
              filename: filenameParam,
              futureRefresh: futureRefreshParam,
              id: idParam);

          return object;
        })
  };

  return obx_int.ModelDefinition(model, bindings);
}