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, 932252667448243648),
    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 [214461829746510662],
    retiredRelationUids: const [],
    modelVersion: 5,
    modelVersionParserMinimum: 5,
    version: 1,
  );

  final bindings = <Type, obx_int.EntityDefinition>{
    OutboxItem: obx_int.EntityDefinition<OutboxItem>(
      model: _entities[0],
      toOneRelations: (OutboxItem object) => [],
      toManyRelations: (OutboxItem object) => {},
      getId: (OutboxItem object) => object.id,
      setId: (OutboxItem object, int id) {
        object.id = id;
      },
      objectToFB: (OutboxItem object, fb.Builder fbb) {
        final operationOffset = fbb.writeString(object.operation);
        final primaryKeyOffset = object.primaryKey == null
            ? null
            : fbb.writeString(object.primaryKey!);
        final urlOffset = fbb.writeString(object.url);
        final payloadOffset = object.payload == null
            ? null
            : fbb.writeString(object.payload!);
        final responseOffset = object.response == null
            ? null
            : fbb.writeString(object.response!);
        final endPointOffset = object.endPoint == null
            ? null
            : fbb.writeString(object.endPoint!);
        final filePathsJsonOffset = object.filePathsJson == null
            ? null
            : fbb.writeString(object.filePathsJson!);
        final fileFieldsJsonOffset = object.fileFieldsJson == null
            ? null
            : fbb.writeString(object.fileFieldsJson!);
        final tableIdOffset = object.tableId == null
            ? null
            : fbb.writeString(object.tableId!);
        final newAccessTokenOffset = object.newAccessToken == null
            ? null
            : fbb.writeString(object.newAccessToken!);
        final fieldsJsonOffset = object.fieldsJson == null
            ? null
            : fbb.writeString(object.fieldsJson!);
        fbb.startTable(20);
        fbb.addInt64(0, object.id);
        fbb.addOffset(1, operationOffset);
        fbb.addOffset(3, primaryKeyOffset);
        fbb.addOffset(4, urlOffset);
        fbb.addOffset(5, payloadOffset);
        fbb.addOffset(6, responseOffset);
        fbb.addInt64(7, object.retryCount);
        fbb.addInt64(8, object.lastTried);
        fbb.addInt64(9, object.isSynced);
        fbb.addInt64(10, object.createdAt);
        fbb.addOffset(11, endPointOffset);
        fbb.addInt64(12, object.priority);
        fbb.addOffset(13, filePathsJsonOffset);
        fbb.addOffset(14, fileFieldsJsonOffset);
        fbb.addInt64(15, object.statusCode);
        fbb.addOffset(16, tableIdOffset);
        fbb.addOffset(17, newAccessTokenOffset);
        fbb.addOffset(18, fieldsJsonOffset);
        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 operationParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 6, '');
        final endPointParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 26);
        final primaryKeyParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 10);
        final urlParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 12, '');
        final payloadParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 14);
        final responseParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 16);
        final retryCountParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          18,
          0,
        );
        final priorityParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          28,
          0,
        );
        final lastTriedParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          20,
          0,
        );
        final isSyncedParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          22,
          0,
        );
        final fileFieldsJsonParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 32);
        final statusCodeParam = const fb.Int64Reader().vTableGetNullable(
          buffer,
          rootOffset,
          34,
        );
        final filePathsJsonParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 30);
        final fieldsJsonParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 40);
        final tableIdParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 36);
        final newAccessTokenParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 38);
        final createdAtParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          24,
          0,
        );
        final object = OutboxItem(
          id: idParam,
          operation: operationParam,
          endPoint: endPointParam,
          primaryKey: primaryKeyParam,
          url: urlParam,
          payload: payloadParam,
          response: responseParam,
          retryCount: retryCountParam,
          priority: priorityParam,
          lastTried: lastTriedParam,
          isSynced: isSyncedParam,
          fileFieldsJson: fileFieldsJsonParam,
          statusCode: statusCodeParam,
          filePathsJson: filePathsJsonParam,
          fieldsJson: fieldsJsonParam,
          tableId: tableIdParam,
          newAccessToken: newAccessTokenParam,
          createdAt: createdAtParam,
        );

        return object;
      },
    ),
  };

  return obx_int.ModelDefinition(model, bindings);
}