code: function(property, name, weight, callback) {
              if (_.isUndefined(callback)) {
                  callback = weight;
                  weight   = 0;
              }
              if (_.isArray(callback)) {
                  weight   = callback[0];
                  callback = callback[1];
              }
              else if (!_.isFunction(callback)) {
                  throw new Error('Setter callback must be a function!');
              }
              if (!(property in this.__setters)) {
                  this.__setters[property] = {};
              }
              this.__setters[property][name] = [weight, callback];
  
              return this;
          }
docs: Adds property setter
  
  @param {string}   property Property name
  @param {string}   name     Setter name
  @param {number}   weight   Setter weight
  @param {function} callback Setter handler
  @returns {clazz|object} this
  
  @this {clazz|object}