sbin/res/app/lib/JSDOC/PluginManager.js
author hamidouk
Fri, 23 Dec 2011 10:59:23 +0100
branchjsdoc
changeset 519 46e21d060650
permissions -rw-r--r--
added jsdoc base files.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
519
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     1
/**
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     2
	@namespace Holds functionality related to running plugins.
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     3
*/
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     4
JSDOC.PluginManager = {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     5
}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     6
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     7
/**
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     8
	@param name A unique name that identifies that plugin.
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     9
	@param handlers A collection of named functions. The names correspond to hooks in the core code.
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    10
*/
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    11
JSDOC.PluginManager.registerPlugin = function(/**String*/name, /**Object*/handlers) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    12
	if (!defined(JSDOC.PluginManager.plugins))
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    13
		/** The collection of all plugins. Requires a unique name for each.
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    14
		*/
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    15
		JSDOC.PluginManager.plugins = {};
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    16
	
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    17
	
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    18
	JSDOC.PluginManager.plugins[name] = handlers;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    19
}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    20
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    21
/**
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    22
	@param hook The name of the hook that is being caught.
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    23
	@param target Any object. This will be passed as the only argument to the handler whose
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    24
	name matches the hook name. Handlers cannot return a value, so must modify the target
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    25
	object to have an effect.
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    26
*/
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    27
JSDOC.PluginManager.run = function(/**String*/hook, /**Mixed*/target) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    28
	for (var name in JSDOC.PluginManager.plugins) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    29
		if (defined(JSDOC.PluginManager.plugins[name][hook])) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    30
			JSDOC.PluginManager.plugins[name][hook](target);
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    31
		}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    32
	}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    33
}