Key fromDatastoreKey()

in lib/src/db/model_db_impl.dart [62:84]


  Key fromDatastoreKey(ds.Key datastoreKey) {
    var namespace = Partition(datastoreKey.partition.namespace);
    var key = namespace.emptyKey;
    for (var element in datastoreKey.elements) {
      var type = _type2ModelDesc[_kind2ModelDesc[element.kind]!];
      if (type == null) {
        throw StateError(
            'Could not find a model associated with kind "${element.kind}". '
            'Please ensure a model class was annotated with '
            '`@Kind(name: "${element.kind}")`.');
      }
      final elementId = element.id;
      if (elementId is String) {
        key = key.append<String>(type, id: elementId);
      } else if (elementId is int) {
        key = key.append<int>(type, id: elementId);
      } else {
        throw StateError('Key must be either String or int, but '
            'was ${elementId.runtimeType} for key ${element.kind}');
      }
    }
    return key;
  }