diff options
Diffstat (limited to 'common/src/main/webapp/usageguide/appserver/node_modules/mongodb/lib/metadata.js')
-rw-r--r-- | common/src/main/webapp/usageguide/appserver/node_modules/mongodb/lib/metadata.js | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/common/src/main/webapp/usageguide/appserver/node_modules/mongodb/lib/metadata.js b/common/src/main/webapp/usageguide/appserver/node_modules/mongodb/lib/metadata.js new file mode 100644 index 0000000..2c6fe94 --- /dev/null +++ b/common/src/main/webapp/usageguide/appserver/node_modules/mongodb/lib/metadata.js @@ -0,0 +1,64 @@ +var f = require('util').format; + +var Define = function(name, object, stream) { + this.name = name; + this.object = object; + this.stream = typeof stream == 'boolean' ? stream : false; + this.instrumentations = {}; +} + +Define.prototype.classMethod = function(name, options) { + var keys = Object.keys(options).sort(); + var key = generateKey(keys, options); + + // Add a list of instrumentations + if(this.instrumentations[key] == null) { + this.instrumentations[key] = { + methods: [], options: options + } + } + + // Push to list of method for this instrumentation + this.instrumentations[key].methods.push(name); +} + +var generateKey = function(keys, options) { + var parts = []; + for(var i = 0; i < keys.length; i++) { + parts.push(f('%s=%s', keys[i], options[keys[i]])); + } + + return parts.join(); +} + +Define.prototype.staticMethod = function(name, options) { + options.static = true; + var keys = Object.keys(options).sort(); + var key = generateKey(keys, options); + + // Add a list of instrumentations + if(this.instrumentations[key] == null) { + this.instrumentations[key] = { + methods: [], options: options + } + } + + // Push to list of method for this instrumentation + this.instrumentations[key].methods.push(name); +} + +Define.prototype.generate = function() { + // Generate the return object + var object = { + name: this.name, obj: this.object, stream: this.stream, + instrumentations: [] + } + + for(var name in this.instrumentations) { + object.instrumentations.push(this.instrumentations[name]); + } + + return object; +} + +module.exports = Define; |