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(4, 9160064887395371876),
    lastIndexId: const obx_int.IdUid(0, 0),
    lastRelationId: const obx_int.IdUid(0, 0),
    lastSequenceId: const obx_int.IdUid(0, 0),
    retiredEntityUids: const [6072440110067899483, 6674380074645599672],
    retiredIndexUids: const [],
    retiredPropertyUids: const [
      3257500603860786490,
      7184596676276845706,
      4125859010512694816,
      7999642378580237386,
      1774581651058165040,
      6648500980729496271,
      5083381345625000545,
      8316824247462543173,
      2878691409008529064,
      8553239779623812279,
      136166845008193984,
      4333210679318052728,
      667664151190914925,
      6348219516869610320,
      8259691590146978420,
    ],
    retiredRelationUids: const [],
    modelVersion: 5,
    modelVersionParserMinimum: 5,
    version: 1,
  );

  final bindings = <Type, obx_int.EntityDefinition>{
    ProductModel: obx_int.EntityDefinition<ProductModel>(
      model: _entities[0],
      toOneRelations: (ProductModel object) => [],
      toManyRelations: (ProductModel object) => {},
      getId: (ProductModel object) => object.id,
      setId: (ProductModel object, int id) {
        object.id = id;
      },
      objectToFB: (ProductModel object, fb.Builder fbb) {
        final nameOffset = fbb.writeString(object.name);
        final serialNumberOffset = fbb.writeString(object.serialNumber);
        final manufactureOffset = fbb.writeString(object.manufacture);
        final categoryOffset = fbb.writeString(object.category);
        final onErrorOffset = fbb.writeString(object.onError);
        fbb.startTable(8);
        fbb.addInt64(0, object.id);
        fbb.addOffset(1, nameOffset);
        fbb.addOffset(2, serialNumberOffset);
        fbb.addOffset(3, manufactureOffset);
        fbb.addOffset(4, categoryOffset);
        fbb.addBool(5, object.trusted);
        fbb.addOffset(6, onErrorOffset);
        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 nameParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final serialNumberParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final manufactureParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 10, '');
        final categoryParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 12, '');
        final trustedParam = const fb.BoolReader().vTableGet(
          buffer,
          rootOffset,
          14,
          false,
        );
        final onErrorParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 16, '');
        final object = ProductModel(
          id: idParam,
          name: nameParam,
          serialNumber: serialNumberParam,
          manufacture: manufactureParam,
          category: categoryParam,
          trusted: trustedParam,
          onError: onErrorParam,
        );

        return object;
      },
    ),
    ScannedLogsProductModel: obx_int.EntityDefinition<ScannedLogsProductModel>(
      model: _entities[1],
      toOneRelations: (ScannedLogsProductModel object) => [],
      toManyRelations: (ScannedLogsProductModel object) => {},
      getId: (ScannedLogsProductModel object) => object.id,
      setId: (ScannedLogsProductModel object, int id) {
        object.id = id;
      },
      objectToFB: (ScannedLogsProductModel object, fb.Builder fbb) {
        final nameOffset = fbb.writeString(object.name);
        final serialNumberOffset = fbb.writeString(object.serialNumber);
        final manufactureOffset = fbb.writeString(object.manufacture);
        final categoryOffset = fbb.writeString(object.category);
        final onErrorOffset = fbb.writeString(object.onError);
        fbb.startTable(9);
        fbb.addInt64(0, object.id);
        fbb.addOffset(1, nameOffset);
        fbb.addOffset(2, serialNumberOffset);
        fbb.addOffset(3, manufactureOffset);
        fbb.addOffset(4, categoryOffset);
        fbb.addBool(5, object.trusted);
        fbb.addOffset(6, onErrorOffset);
        fbb.addInt64(7, object.scannedAt.millisecondsSinceEpoch);
        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 nameParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final serialNumberParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final manufactureParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 10, '');
        final categoryParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 12, '');
        final trustedParam = const fb.BoolReader().vTableGet(
          buffer,
          rootOffset,
          14,
          false,
        );
        final onErrorParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 16, '');
        final scannedAtParam = DateTime.fromMillisecondsSinceEpoch(
          const fb.Int64Reader().vTableGet(buffer, rootOffset, 18, 0),
        );
        final object = ScannedLogsProductModel(
          id: idParam,
          name: nameParam,
          serialNumber: serialNumberParam,
          manufacture: manufactureParam,
          category: categoryParam,
          trusted: trustedParam,
          onError: onErrorParam,
          scannedAt: scannedAtParam,
        );

        return object;
      },
    ),
  };

  return obx_int.ModelDefinition(model, bindings);
}