void writeStringValue(@NotNull String key, String val) {
        final ID mnode;
        if (!isValid()) {
          if (val == null) // nothing to erase
            return;

          mnode = _createDictionary();
        } else
          mnode = Foundation.invoke(cachedNodeObj, "mutableCopy");

        if (mnode.equals(ID.NIL))
          return;

        if (val != null)
          Foundation.invoke(mnode, "setObject:forKey:", Foundation.nsString(val), Foundation.nsString(key));
        else
          Foundation.invoke(mnode, "removeObjectForKey:", Foundation.nsString(key));

        cachedNodeObj = mnode;
      }
void writeStringValue(@NotNull String key, String val)