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, 8890972191143949164),
    lastIndexId: const obx_int.IdUid(4, 6876753875053649510),
    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>{
    CachedAliceHttpCall: obx_int.EntityDefinition<CachedAliceHttpCall>(
      model: _entities[0],
      toOneRelations:
          (CachedAliceHttpCall object) => [
            object.requestRel,
            object.responseRel,
            object.errorRel,
          ],
      toManyRelations: (CachedAliceHttpCall object) => {},
      getId: (CachedAliceHttpCall object) => object.objectId,
      setId: (CachedAliceHttpCall object, int id) {
        object.objectId = id;
      },
      objectToFB: (CachedAliceHttpCall object, fb.Builder fbb) {
        final clientOffset = fbb.writeString(object.client);
        final methodOffset = fbb.writeString(object.method);
        final endpointOffset = fbb.writeString(object.endpoint);
        final serverOffset = fbb.writeString(object.server);
        final uriOffset = fbb.writeString(object.uri);
        fbb.startTable(15);
        fbb.addInt64(0, object.objectId);
        fbb.addInt64(1, object.id);
        fbb.addInt64(2, object.createdTime.microsecondsSinceEpoch * 1000);
        fbb.addOffset(3, clientOffset);
        fbb.addBool(4, object.loading);
        fbb.addBool(5, object.secure);
        fbb.addOffset(6, methodOffset);
        fbb.addOffset(7, endpointOffset);
        fbb.addOffset(8, serverOffset);
        fbb.addOffset(9, uriOffset);
        fbb.addInt64(10, object.duration);
        fbb.addInt64(11, object.requestRel.targetId);
        fbb.addInt64(12, object.responseRel.targetId);
        fbb.addInt64(13, object.errorRel.targetId);
        fbb.finish(fbb.endTable());
        return object.objectId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final idParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          6,
          0,
        );
        final objectIdParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          4,
          0,
        );
        final createdTimeParam = DateTime.fromMicrosecondsSinceEpoch(
          (const fb.Int64Reader().vTableGet(buffer, rootOffset, 8, 0) / 1000)
              .round(),
        );
        final clientParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 10, '');
        final loadingParam = const fb.BoolReader().vTableGet(
          buffer,
          rootOffset,
          12,
          false,
        );
        final secureParam = const fb.BoolReader().vTableGet(
          buffer,
          rootOffset,
          14,
          false,
        );
        final methodParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 16, '');
        final endpointParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 18, '');
        final serverParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 20, '');
        final uriParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGet(buffer, rootOffset, 22, '');
        final durationParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          24,
          0,
        );
        final object = CachedAliceHttpCall(
          idParam,
          objectId: objectIdParam,
          createdTime: createdTimeParam,
          client: clientParam,
          loading: loadingParam,
          secure: secureParam,
          method: methodParam,
          endpoint: endpointParam,
          server: serverParam,
          uri: uriParam,
          duration: durationParam,
        );
        object.requestRel.targetId = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          26,
          0,
        );
        object.requestRel.attach(store);
        object.responseRel.targetId = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          28,
          0,
        );
        object.responseRel.attach(store);
        object.errorRel.targetId = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          30,
          0,
        );
        object.errorRel.attach(store);
        return object;
      },
    ),
    CachedAliceHttpError: obx_int.EntityDefinition<CachedAliceHttpError>(
      model: _entities[1],
      toOneRelations: (CachedAliceHttpError object) => [],
      toManyRelations: (CachedAliceHttpError object) => {},
      getId: (CachedAliceHttpError object) => object.objectId,
      setId: (CachedAliceHttpError object, int id) {
        object.objectId = id;
      },
      objectToFB: (CachedAliceHttpError object, fb.Builder fbb) {
        final dbErrorOffset =
            object.dbError == null ? null : fbb.writeString(object.dbError!);
        final dbStackTraceOffset =
            object.dbStackTrace == null
                ? null
                : fbb.writeString(object.dbStackTrace!);
        fbb.startTable(4);
        fbb.addInt64(0, object.objectId);
        fbb.addOffset(1, dbErrorOffset);
        fbb.addOffset(2, dbStackTraceOffset);
        fbb.finish(fbb.endTable());
        return object.objectId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final objectIdParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          4,
          0,
        );
        final object =
            CachedAliceHttpError(objectId: objectIdParam)
              ..dbError = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGetNullable(buffer, rootOffset, 6)
              ..dbStackTrace = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGetNullable(buffer, rootOffset, 8);

        return object;
      },
    ),
    CachedAliceHttpRequest: obx_int.EntityDefinition<CachedAliceHttpRequest>(
      model: _entities[2],
      toOneRelations: (CachedAliceHttpRequest object) => [],
      toManyRelations: (CachedAliceHttpRequest object) => {},
      getId: (CachedAliceHttpRequest object) => object.objectId,
      setId: (CachedAliceHttpRequest object, int id) {
        object.objectId = id;
      },
      objectToFB: (CachedAliceHttpRequest object, fb.Builder fbb) {
        final contentTypeOffset =
            object.contentType == null
                ? null
                : fbb.writeString(object.contentType!);
        final dbHeadersOffset = fbb.writeString(object.dbHeaders);
        final dbBodyOffset =
            object.dbBody == null ? null : fbb.writeString(object.dbBody!);
        final dbCookiesOffset = fbb.writeList(
          object.dbCookies.map(fbb.writeString).toList(growable: false),
        );
        final dbQueryParametersOffset = fbb.writeString(
          object.dbQueryParameters,
        );
        final dbFormDataFilesOffset =
            object.dbFormDataFiles == null
                ? null
                : fbb.writeList(
                  object.dbFormDataFiles!
                      .map(fbb.writeString)
                      .toList(growable: false),
                );
        final dbFormDataFieldsOffset =
            object.dbFormDataFields == null
                ? null
                : fbb.writeList(
                  object.dbFormDataFields!
                      .map(fbb.writeString)
                      .toList(growable: false),
                );
        fbb.startTable(11);
        fbb.addInt64(0, object.objectId);
        fbb.addInt64(1, object.size);
        fbb.addInt64(2, object.time.microsecondsSinceEpoch * 1000);
        fbb.addOffset(3, contentTypeOffset);
        fbb.addOffset(4, dbHeadersOffset);
        fbb.addOffset(5, dbBodyOffset);
        fbb.addOffset(6, dbCookiesOffset);
        fbb.addOffset(7, dbQueryParametersOffset);
        fbb.addOffset(8, dbFormDataFilesOffset);
        fbb.addOffset(9, dbFormDataFieldsOffset);
        fbb.finish(fbb.endTable());
        return object.objectId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final objectIdParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          4,
          0,
        );
        final sizeParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          6,
          0,
        );
        final timeParam = DateTime.fromMicrosecondsSinceEpoch(
          (const fb.Int64Reader().vTableGet(buffer, rootOffset, 8, 0) / 1000)
              .round(),
        );
        final contentTypeParam = const fb.StringReader(
          asciiOptimization: true,
        ).vTableGetNullable(buffer, rootOffset, 10);
        final object =
            CachedAliceHttpRequest(
                objectId: objectIdParam,
                size: sizeParam,
                time: timeParam,
                contentType: contentTypeParam,
              )
              ..dbHeaders = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGet(buffer, rootOffset, 12, '')
              ..dbBody = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGetNullable(buffer, rootOffset, 14)
              ..dbCookies = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGet(buffer, rootOffset, 16, [])
              ..dbQueryParameters = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGet(buffer, rootOffset, 18, '')
              ..dbFormDataFiles = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGetNullable(buffer, rootOffset, 20)
              ..dbFormDataFields = const fb.ListReader<String>(
                fb.StringReader(asciiOptimization: true),
                lazy: false,
              ).vTableGetNullable(buffer, rootOffset, 22);

        return object;
      },
    ),
    CachedAliceHttpResponse: obx_int.EntityDefinition<CachedAliceHttpResponse>(
      model: _entities[3],
      toOneRelations: (CachedAliceHttpResponse object) => [],
      toManyRelations: (CachedAliceHttpResponse object) => {},
      getId: (CachedAliceHttpResponse object) => object.objectId,
      setId: (CachedAliceHttpResponse object, int id) {
        object.objectId = id;
      },
      objectToFB: (CachedAliceHttpResponse object, fb.Builder fbb) {
        final dbBodyOffset =
            object.dbBody == null ? null : fbb.writeString(object.dbBody!);
        final dbHeadersOffset =
            object.dbHeaders == null
                ? null
                : fbb.writeString(object.dbHeaders!);
        fbb.startTable(7);
        fbb.addInt64(0, object.objectId);
        fbb.addInt64(1, object.status);
        fbb.addInt64(2, object.size);
        fbb.addInt64(3, object.time.microsecondsSinceEpoch * 1000);
        fbb.addOffset(4, dbBodyOffset);
        fbb.addOffset(5, dbHeadersOffset);
        fbb.finish(fbb.endTable());
        return object.objectId;
      },
      objectFromFB: (obx.Store store, ByteData fbData) {
        final buffer = fb.BufferContext(fbData);
        final rootOffset = buffer.derefObject(0);
        final objectIdParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          4,
          0,
        );
        final statusParam = const fb.Int64Reader().vTableGetNullable(
          buffer,
          rootOffset,
          6,
        );
        final sizeParam = const fb.Int64Reader().vTableGet(
          buffer,
          rootOffset,
          8,
          0,
        );
        final timeParam = DateTime.fromMicrosecondsSinceEpoch(
          (const fb.Int64Reader().vTableGet(buffer, rootOffset, 10, 0) / 1000)
              .round(),
        );
        final object =
            CachedAliceHttpResponse(
                objectId: objectIdParam,
                status: statusParam,
                size: sizeParam,
                time: timeParam,
              )
              ..dbBody = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGetNullable(buffer, rootOffset, 12)
              ..dbHeaders = const fb.StringReader(
                asciiOptimization: true,
              ).vTableGetNullable(buffer, rootOffset, 14);

        return object;
      },
    ),
  };

  return obx_int.ModelDefinition(model, bindings);
}