整数
@param  {[type]} o [description]
@return {[type]}   [description]
335915
function (value) {
        let val = parseInt(value, 10);
        if (isNaN(val)) {
            return false;
        }
        return (val + '').length === value.length;
    }
167790
public static Object unwrap(Object o) {
        Wrapper w = (Wrapper) o;
        return w.unwrap();
    }
159045
function(o, fields, callback) {
    
    var single, self = this;
    
    if (callback == null) {
      callback = fields;
      fields = null;
    } else if (fields instanceof Array) {
      if (fields.indexOf('id') === -1) {
        fields.unshift('id'); // Ensure ID is included in query
      }
      fields = fields.join(', ');
    }
    
    if (typeof o == 'number') { 
      
      // If `o` is number: Convert to object
      o = {id: o};

    } else if (util.isArray(o)) {
      
      // If `o` is an array of params, process args recursively using multi
      var arr = o;
      var multi = this.multi();
      
      for (var i=0; i < arr.length; i++) {
        multi.get(arr[i], fields);
      }
      
      return multi.exec(function(err, results) {
        results = results.filter(function(val) {
          return val; // Filter null values
        });
        callback.call(self, err, results);
      });
      
    } else if (typeof o == 'object') {
      
      // IF `o` is object: Validate without checking required fields
      this.propertyCheck(o);
      
    } else {
      
      return callback.call(self, new Error(util.format("%s: Wrong value for `o` argument", this.className)), null);
      
    }
    
    // Set single if ID is specified in query
    if (o.id) single = true;
    
    // Prepare custom query
    var condition, key, value;
    var keys = [], values = [];
    
    for (key in o) {
      keys.push(key);
      values.push(o[key]);
    }
    
    // Prevent empty args
    if (keys.length === 0) {
      return callback.call(self, new Error(util.format("%s: Empty arguments", this.className)));
    } else {
      var len;
      condition = [];
      for (i=0,len=keys.length; i < len; i++) {
        condition.push(util.format('%s=$%d', keys[i], (i+1)));
      }
      condition = condition.join(' AND ');
    }
    
    // Get model data & return generated model (if found)
    this.driver.queryWhere({
      condition: condition,
      columns: fields || undefined,
      params: values,
      table: this.context,
      appendSql: "ORDER BY id DESC"
    }, function(err, results) {
      if (err) {
        callback.call(self, err, null);
      } else {
        if (results.length === 0) {
          callback.call(self, null, single ? null : []);
        } else if (single) {
          callback.call(self, null, self.createModel(results[0]));
        } else {
          for (var models=[],i=0; i < results.length; i++) {
            models.push(self.createModel(results[i]));
          }
          callback.call(self, null, models);
        }
      }
    });
  }
701816
function __objectValues(o) {
    var k,
        a = [];

    for (k in o)
      a.push(o[k]);

    return a;
  }
1273083
function flip(o) {
    var flipped = { };
    for (var i in o) {
        if (o.hasOwnProperty(i)) {
            flipped[o[i]] = i;
        }
    }
    return flipped;
}
660387
function extend(o) {
  if (typeOf(o) !== 'object') { return {}; }
  var args = arguments;
  var len = args.length - 1;

  for (var i = 0; i < len; i++) {
    var obj = args[i + 1];

    if (typeOf(obj) === 'object' && typeOf(obj) !== 'regexp') {
      for (var key in obj) {
        if (obj.hasOwnProperty(key)) {
          o[key] = obj[key];
        }
      }
    }
  }
  return o;
}
1312562
function mapObject(o, fn, ctxt) {
  var result = {};
  for (var key in o) {
    if (o.hasOwnProperty(key)) {
      result[key] = fn.call(ctxt, o[key], key, o);
    }
  }
  return result;
}
643487
function getClass(o) {

	if (o === null || o === undefined) return "Object";
	return OP_toString.call(o).slice("[object ".length, -1);
}
551206
function ( obj ) {
		return typeof obj === "object" ? obj : ( obj.charAt && obj.charAt( 0 ) === "#" ? utility.$( obj ) : obj );
	}
294580
function(o, fields, callback) {
    
    var single, self = this;

    if (callback == null) {
      callback = fields;
      fields = null;
    } else if (fields instanceof Array) {
      fields = fields.reduce(function(ob, current) {
        ob[current] = 1;
        return ob;
      }, {});
    }

    if (typeof o == 'number' || typeof o == 'string' || o instanceof ObjectID) { 
      
      // If `o` is number: Convert to object
      o = {_id: o};
      single = true;
      
    } else if (o instanceof Array) {

      // If `o` is an array of params, process args recursively using multi
      var arr = o;
      var multi = this.multi();
      
      for (var i=0; i < arr.length; i++) {
        multi.get(arr[i], fields);
      }
      
      return multi.exec(function(err, docs) {
        docs = docs.filter(function(val) {
          return val; // Filter null values
        });
        callback.call(self, err, docs);
      });
      
    } else if (o.constructor === Object) {
      
      // IF `o` is object: Validate without checking required fields
      this.propertyCheck(o);

    } else {

      return callback.call(self, new Error(util.format("%s: Wrong value for `o` argument", this.className)), null);

    }
    
    // Convert `id` to `_id`
    convertMongoID(o);
    
    // Set single if ID is specified in query
    if (o._id) single = true; 
    
    this.driver.queryWhere({
      collection: this.context,
      condition: o,
      fields: fields || {},
      exArgs: {
        sort: [['_id', 'desc']]
      }
    }, function(err, docs) {
      if (err) callback.call(self, err, null);
      else {
        if (docs.length === 0) {
          callback.call(self, null, single ? null : []);
        } else if (single) {
          callback.call(self, null, self.createModel(docs[0]));
        } else {
          for (var models=[],i=0; i < docs.length; i++) {
            models.push(self.createModel(docs[i]));
          }
          callback.call(self, null, models);
        }
      }
    });
  }
334751
function() {
                var m, a, op, operation;
                m = $(this.operand);
                if (m) {
                    while ((op = ($('/') || $('*') || $('%'))) && (a = $(this.operand))) {
                        operation = new tree.Operation(op, [operation || m, a], memo, env.filename);
                    }
                    return operation || m;
                }
            }
428397
@SuppressWarnings("null")
	public static String valueOf(@Nullable Object o) {
		return String.valueOf(String.valueOf(o));
	}
987254
private String getStringValue(Object o) {
        if (o instanceof String) {
            return (String) o;
        } else if (o instanceof NodeArray) {
            NodeArray array = (NodeArray) o;
            switch (array.size()) {
                case 0:
                    return null;
                case 1: {
                    return getStringValue(array.get(0));
                }
                default:
                    return getStringValue(array);
            }
        } else if (o instanceof Node) {
            return getStringValue((Node) o);
        } else if (o != null) {
            return o.toString();
        }
        return null;
    }
402963
function copyOf(o) {
  if (Array.isArray(o)) return o.slice();
  if (isObject(o)) return assign({}, o);
  return o;
}
768555
function(arr, o) {
      if (arr.indexOf) return arr.indexOf(o);
      for (var i = 0; i < this.length; i++) if (arr[i] === o) return i;
      return -1;
    }
387283
function getBox(o) {
    return {
        xMin: o.position.x,
        xMax: o.position.x + o.width,
        yMin: o.position.y,
        yMax: o.position.y + o.height
    };
}
316726
function parse_operator_type(op, def) {
	op = ''+op;
	if(op.indexOf(':') === -1) {
		return def || 'boolean';
	}
	return op.split(':')[1];
}