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(8, 3545193943964287321),
      lastIndexId: const obx_int.IdUid(10, 2562607691785884488),
      lastRelationId: const obx_int.IdUid(0, 0),
      lastSequenceId: const obx_int.IdUid(0, 0),
      retiredEntityUids: const [
        6577851630444107071,
        7232160148979644101,
        1626380097505653220,
        8703077377677002917
      ],
      retiredIndexUids: const [],
      retiredPropertyUids: const [
        8533558606535966526,
        186652500592327727,
        6958767133850847832,
        982025843340250439,
        8748202970090119035,
        4351056340122089503,
        3042129134787051626,
        7080108967250840770,
        6134540636395211292,
        6451367421366127939,
        739514348179545731,
        5496943555991882359,
        1952333526486807260,
        832527306289090802,
        7386851300878634084,
        3670895088153145212,
        4294110920790186262,
        4258450413116392673,
        271186945961150400,
        839070883767347324,
        1041576258085578066,
        1985969293010174212,
        3199629041363565880,
        4262583096715220227,
        6731350213666359245,
        9055439141483260486,
        5373247350553835114,
        5887547629459090152,
        9080051665455361474,
        8526723714891434267
      ],
      retiredRelationUids: const [],
      modelVersion: 5,
      modelVersionParserMinimum: 5,
      version: 1);

  final bindings = <Type, obx_int.EntityDefinition>{
    WalletEntity: obx_int.EntityDefinition<WalletEntity>(
        model: _entities[0],
        toOneRelations: (WalletEntity object) => [object.safe],
        toManyRelations: (WalletEntity object) => {},
        getId: (WalletEntity object) => object.id,
        setId: (WalletEntity object, int id) {
          object.id = id;
        },
        objectToFB: (WalletEntity object, fb.Builder fbb) {
          final addressOffset = fbb.writeString(object.address);
          final nameOffset =
              object.name == null ? null : fbb.writeString(object.name!);
          final imagePathOffset = object.imagePath == null
              ? null
              : fbb.writeString(object.imagePath!);
          fbb.startTable(12);
          fbb.addInt64(0, object.id);
          fbb.addOffset(1, addressOffset);
          fbb.addInt64(2, object.safe.targetId);
          fbb.addInt64(3, object.derivation);
          fbb.addOffset(4, nameOffset);
          fbb.addInt64(5, object.number);
          fbb.addFloat32(6, object.balance);
          fbb.addInt64(8, object.keyPairTypeIndex);
          fbb.addOffset(10, imagePathOffset);
          fbb.finish(fbb.endTable());
          return object.id;
        },
        objectFromFB: (obx.Store store, ByteData fbData) {
          final buffer = fb.BufferContext(fbData);
          final rootOffset = buffer.derefObject(0);
          final addressParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 6, '');
          final derivationParam =
              const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 10);
          final nameParam = const fb.StringReader(asciiOptimization: true)
              .vTableGetNullable(buffer, rootOffset, 12);
          final numberParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 14, 0);
          final keyPairTypeIndexParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 20, 0);
          final balanceParam =
              const fb.Float32Reader().vTableGet(buffer, rootOffset, 16, 0);
          final imagePathParam = const fb.StringReader(asciiOptimization: true)
              .vTableGetNullable(buffer, rootOffset, 24);
          final object = WalletEntity(
              address: addressParam,
              derivation: derivationParam,
              name: nameParam,
              number: numberParam,
              keyPairTypeIndex: keyPairTypeIndexParam,
              balance: balanceParam,
              imagePath: imagePathParam)
            ..id = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0);
          object.safe.targetId =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 8, 0);
          object.safe.attach(store);
          return object;
        }),
    Config: obx_int.EntityDefinition<Config>(
        model: _entities[1],
        toOneRelations: (Config object) => [],
        toManyRelations: (Config object) => {},
        getId: (Config object) => object.id,
        setId: (Config object, int id) {
          object.id = id;
        },
        objectToFB: (Config object, fb.Builder fbb) {
          final keyOffset = fbb.writeString(object.key);
          final valueOffset = fbb.writeString(object.value);
          fbb.startTable(4);
          fbb.addInt64(0, object.id);
          fbb.addOffset(1, keyOffset);
          fbb.addOffset(2, valueOffset);
          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 keyParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 6, '');
          final valueParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 8, '');
          final object = Config(id: idParam, key: keyParam, value: valueParam);

          return object;
        }),
    SafeEntity: obx_int.EntityDefinition<SafeEntity>(
        model: _entities[2],
        toOneRelations: (SafeEntity object) => [],
        toManyRelations: (SafeEntity object) => {
              obx_int.RelInfo<WalletEntity>.toOneBacklink(
                      3, object.id, (WalletEntity srcObject) => srcObject.safe):
                  object.wallets
            },
        getId: (SafeEntity object) => object.id,
        setId: (SafeEntity object, int id) {
          object.id = id;
        },
        objectToFB: (SafeEntity object, fb.Builder fbb) {
          final nameOffset = fbb.writeString(object.name);
          final defaultAddressOffset = object.defaultAddress == null
              ? null
              : fbb.writeString(object.defaultAddress!);
          final rootAddressOffset = object.rootAddress == null
              ? null
              : fbb.writeString(object.rootAddress!);
          final imagePathOffset = object.imagePath == null
              ? null
              : fbb.writeString(object.imagePath!);
          final ivOffset = fbb.writeListInt8(object.iv);
          final cipherTextOffset = fbb.writeString(object.cipherText);
          final mnemonicLanguageOffset =
              fbb.writeString(object.mnemonicLanguage);
          final fingerprintOffset = fbb.writeString(object.fingerprint);
          fbb.startTable(14);
          fbb.addInt64(0, object.id);
          fbb.addInt64(1, object.number);
          fbb.addOffset(2, nameOffset);
          fbb.addOffset(3, defaultAddressOffset);
          fbb.addOffset(4, rootAddressOffset);
          fbb.addOffset(5, imagePathOffset);
          fbb.addOffset(6, ivOffset);
          fbb.addOffset(7, cipherTextOffset);
          fbb.addInt64(8, object.createdAt.millisecondsSinceEpoch);
          fbb.addOffset(9, mnemonicLanguageOffset);
          fbb.addBool(10, object.biometricEnabled);
          fbb.addInt64(11, object.biometricEnabledAt?.millisecondsSinceEpoch);
          fbb.addOffset(12, fingerprintOffset);
          fbb.finish(fbb.endTable());
          return object.id;
        },
        objectFromFB: (obx.Store store, ByteData fbData) {
          final buffer = fb.BufferContext(fbData);
          final rootOffset = buffer.derefObject(0);
          final biometricEnabledAtValue =
              const fb.Int64Reader().vTableGetNullable(buffer, rootOffset, 26);
          final numberParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 6, 0);
          final nameParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 8, '');
          final fingerprintParam =
              const fb.StringReader(asciiOptimization: true)
                  .vTableGet(buffer, rootOffset, 28, '');
          final ivParam = const fb.Uint8ListReader(lazy: false)
              .vTableGet(buffer, rootOffset, 16, Uint8List(0)) as Uint8List;
          final cipherTextParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 18, '');
          final defaultAddressParam =
              const fb.StringReader(asciiOptimization: true)
                  .vTableGetNullable(buffer, rootOffset, 10);
          final rootAddressParam =
              const fb.StringReader(asciiOptimization: true)
                  .vTableGetNullable(buffer, rootOffset, 12);
          final imagePathParam = const fb.StringReader(asciiOptimization: true)
              .vTableGetNullable(buffer, rootOffset, 14);
          final mnemonicLanguageParam =
              const fb.StringReader(asciiOptimization: true)
                  .vTableGet(buffer, rootOffset, 22, '');
          final biometricEnabledParam =
              const fb.BoolReader().vTableGet(buffer, rootOffset, 24, false);
          final biometricEnabledAtParam = biometricEnabledAtValue == null
              ? null
              : DateTime.fromMillisecondsSinceEpoch(biometricEnabledAtValue);
          final object = SafeEntity(
              number: numberParam,
              name: nameParam,
              fingerprint: fingerprintParam,
              iv: ivParam,
              cipherText: cipherTextParam,
              defaultAddress: defaultAddressParam,
              rootAddress: rootAddressParam,
              imagePath: imagePathParam,
              mnemonicLanguage: mnemonicLanguageParam,
              biometricEnabled: biometricEnabledParam,
              biometricEnabledAt: biometricEnabledAtParam)
            ..id = const fb.Int64Reader().vTableGet(buffer, rootOffset, 4, 0)
            ..createdAt = DateTime.fromMillisecondsSinceEpoch(
                const fb.Int64Reader().vTableGet(buffer, rootOffset, 20, 0));
          obx_int.InternalToManyAccess.setRelInfo<SafeEntity>(
              object.wallets,
              store,
              obx_int.RelInfo<WalletEntity>.toOneBacklink(
                  3, object.id, (WalletEntity srcObject) => srcObject.safe));
          return object;
        }),
    BootstrapEndpoint: obx_int.EntityDefinition<BootstrapEndpoint>(
        model: _entities[3],
        toOneRelations: (BootstrapEndpoint object) => [],
        toManyRelations: (BootstrapEndpoint object) => {},
        getId: (BootstrapEndpoint object) => object.id,
        setId: (BootstrapEndpoint object, int id) {
          object.id = id;
        },
        objectToFB: (BootstrapEndpoint object, fb.Builder fbb) {
          final networkOffset = fbb.writeString(object.network);
          final endpointTypeOffset = fbb.writeString(object.endpointType);
          final endpointOffset = fbb.writeString(object.endpoint);
          final sourceOffset = fbb.writeString(object.source);
          fbb.startTable(11);
          fbb.addInt64(0, object.id);
          fbb.addOffset(1, networkOffset);
          fbb.addOffset(2, endpointTypeOffset);
          fbb.addOffset(3, endpointOffset);
          fbb.addInt64(4, object.lastTested);
          fbb.addInt64(5, object.successRate);
          fbb.addInt64(6, object.averageLatency);
          fbb.addBool(7, object.isWorking);
          fbb.addInt64(8, object.lastUpdated);
          fbb.addOffset(9, sourceOffset);
          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 networkParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 6, '');
          final endpointTypeParam =
              const fb.StringReader(asciiOptimization: true)
                  .vTableGet(buffer, rootOffset, 8, '');
          final endpointParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 10, '');
          final lastTestedParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 12, 0);
          final successRateParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 14, 0);
          final averageLatencyParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 16, 0);
          final isWorkingParam =
              const fb.BoolReader().vTableGet(buffer, rootOffset, 18, false);
          final lastUpdatedParam =
              const fb.Int64Reader().vTableGet(buffer, rootOffset, 20, 0);
          final sourceParam = const fb.StringReader(asciiOptimization: true)
              .vTableGet(buffer, rootOffset, 22, '');
          final object = BootstrapEndpoint(
              id: idParam,
              network: networkParam,
              endpointType: endpointTypeParam,
              endpoint: endpointParam,
              lastTested: lastTestedParam,
              successRate: successRateParam,
              averageLatency: averageLatencyParam,
              isWorking: isWorkingParam,
              lastUpdated: lastUpdatedParam,
              source: sourceParam);

          return object;
        })
  };

  return obx_int.ModelDefinition(model, bindings);
}