saveNodeData(...args) {

    const data = this.getNodeData();

    if (args.length === 2) {

      if (typeof args[1] === 'object') {

        if (args[1] === null) {

          delete data[args[0]];

        } else {

          data[args[0]] = Object.assign(data[args[0]] || {}, args[1]);
        }
      }

    } else if (args.length === 1 && typeof args[0] === 'object') {

      $tm.logger('log', 'Storing data in', this.mapTRef);

      Object.assign(data, args[0]);

    } else { // not allowed

      throw new InvalidArgumentException(...args);
    }

    utils.writeFieldData(this.mapTRef, 'text', data, $tm.config.sys.jsonIndentation);

  }
This function will merge the given data in the view's node store.

If a property is set to null, it will be removed.

If two arguments are provided, the first parameter is assumed
to be a node id and the second to be the data object. The data
will extend the existing data. If data is not an object, it is
assumed to be a delete directive and consequently the node data
in the store will be deleted.

Otherwise, if a single object parameter is provided, it is regarded
as a node collection and the whole object is used to extend the store.

Note: The Adapter will routinely delete node content of nodes that are
not contained in the view anymore.