code: function(object, propertyMeta, property) {
          var that = this;
  
          object['_' + property] = undefined;
  
          // Adjust property 'type' and 'default fields
          if (_.isArray(propertyMeta)) {
              propertyMeta = propertyMeta.length === 3 || !_.isSimpleObject(propertyMeta[1])
                  ? { type: [propertyMeta[0], propertyMeta[2] || {}], default: propertyMeta[1] }
                  : { type: propertyMeta }
          }
          else if (!_.isSimpleObject(propertyMeta)) {
              propertyMeta = { default: propertyMeta }
          }
  
          // Sets default property methods
          if (!('methods' in propertyMeta)) {
              propertyMeta.methods = ['get', 'set', 'has', 'is', 'clear', 'remove']
          }
  
          object.__setPropertyParam(property, {});
  
          // Process property meta data by options processors
          _.each(propertyMeta, function(data, option) {
              if (!(option in that._options)) {
                  return;
              }
  
              var processor = that._options[option];
  
              if (_.isString(processor)) {
                  processor = meta(processor);
              }
  
              processor.process(object, data, property);
          });
      }
docs: Process single property for clazz
  
  @param {clazz|object} object         Clazz or its prototype
  @param {object}       propertyMeta   Property meta data
  @param {string}       property       Property name
  
  @this {metaProcessor}