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, 1692653621568995334),
    lastIndexId: const obx_int.IdUid(1, 8047035678905288981),
    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>{
    ScreenEntity: obx_int.EntityDefinition<ScreenEntity>(
      model: _entities[0],
      toOneRelations: (ScreenEntity object) => [],
      toManyRelations: (ScreenEntity object) => {},
      getId: (ScreenEntity object) => object.id,
      setId: (ScreenEntity object, int id) {
        object.id = id;
      },
      objectToFB: (ScreenEntity object, fb.Builder fbb) {
        final screenIdOffset = fbb.writeString(object.screenId);
        final nameOffset = fbb.writeString(object.name);
        final jsonDataOffset = fbb.writeString(object.jsonData);
        final syncStatusOffset = fbb.writeString(object.syncStatus);
        final remoteVersionOffset = object.remoteVersion == null
            ? null
            : fbb.writeString(object.remoteVersion!);
        fbb.startTable(13);
        fbb.addInt64(0, object.id);
        fbb.addOffset(1, screenIdOffset);
        fbb.addOffset(2, nameOffset);
        fbb.addInt64(3, object.version);
        fbb.addOffset(4, jsonDataOffset);
        fbb.addInt64(5, object.lastUpdated);
        fbb.addOffset(6, syncStatusOffset);
        fbb.addInt64(7, object.failedAttempts);
        fbb.addInt64(8, object.localModifiedAt);
        fbb.addBool(9, object.isDeleted);
        fbb.addBool(10, object.hasConflict);
        fbb.addOffset(11, remoteVersionOffset);
        fbb.finish(fbb.endTable());
        return object.id;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final screenIdParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final nameParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 8, '');
        final jsonDataParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 12, '');
        final object =
            ScreenEntity(
                screenId: screenIdParam,
                name: nameParam,
                jsonData: jsonDataParam,
              )
              ..id = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0)
              ..version = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                10,
                0,
              )
              ..lastUpdated = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                14,
                0,
              )
              ..syncStatus = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGet(buffer, rootOffset, 16, '')
              ..failedAttempts = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                18,
                0,
              )
              ..localModifiedAt = const fb.Int64Reader().vTableGet(
                buffer,
                rootOffset,
                20,
                0,
              )
              ..isDeleted = const fb.BoolReader().vTableGet(
                buffer,
                rootOffset,
                22,
                false,
              )
              ..hasConflict = const fb.BoolReader().vTableGet(
                buffer,
                rootOffset,
                24,
                false,
              )
              ..remoteVersion = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGetNullable(buffer, rootOffset, 26);

        return object;
      },
    ),
  };

  return obx_int.ModelDefinition(model, bindings);
}