code: function(data, options) {
              for (var property in data) {
                  if (!this.__hasProperty(property.split('.')[0])) {
                      continue;
                  }
  
                  var value = data[property];
  
                  if (_.isUndefined(value) || _.isNull(value)) {
                      this.__removePropertyValue(property, options);
                  }
                  else if (_.isObject(value) && _.isEmpty(value)) {
                      this.__clearPropertyValue(property, options)
                  }
                  else {
                      this.__setPropertyValue(property, value, options);
                  }
              }
              return this;
          }
docs: Sets object data
  
  @param {object} data    Property data ({ property1: value1, property2: value2, .. })
  @param {object} options Property options ({ emit: emitValue, check: checkValue })
  @returns {clazz|object} this
  
  @this {clazz|object}