set method

  1. @override
dynamic set(
  1. dynamic v
)
override

Implementation

@override
set(v) {
  // si lo que esta entrando es una lista
  if (v is List) {
    // si la lista tiene clave
    // se busca modificar los elementos que concidan con el id o key
    if (hasKey) {
      // se revisa el contenido que se recibe
      for (var i in v) {
        // se busca el key o el id
        int index = indexWhere((x) => i['key'] ?? i['id']);

        // si no se encuentra se agrega
        if (index < 0) {
          var n = builder();
          n.set(i);
          add(n);
        }

        // se actualiza el registro si se encuentra
        else {
          this[index].set(i);
        }
      }
    }
    // si no tiene key la lista
    // se limpia y se agrega todo
    else {
      clear();
      for (var x in v) {
        var n = builder();
        n.reset(x);
        add(n);
      }
    }
  }
}