Location: A review of cardiac cellular electrophysiology models @ a26c8f6bf655 / dojo-presentation / js / dojo / dojox / lang / aspect / cflow.js

Author:
David Nickerson <david.nickerson@gmail.com>
Date:
2021-09-15 12:24:03+12:00
Desc:
Updates to FHN model: * Make sure model is valid OpenCOR CellML Text format; * Make sure model is valid CellML; * Add SED-ML for single stimulus experiment. Using OpenCOR snapshot 2021-09-14
Permanent Source URI:
https://staging.physiomeproject.org/workspace/a1/rawfile/a26c8f6bf655d7de97fbc8d4197ca492804c735a/dojo-presentation/js/dojo/dojox/lang/aspect/cflow.js

dojo.provide("dojox.lang.aspect.cflow");


(function(){
	var aop = dojox.lang.aspect;
	
	aop.cflow = function(/*Object*/ instance, /*String|RegExp|Array?*/ method){
		// summary:
		//		Returns true if the context stack contains a context for a given
		//		instance that satisfies a given method name criteria.
		//
		// instance:
		//		An instance to be matched. If null, any context will be examined.
		//		Otherwise the context should belong to this instance.
		//
		// method:
		//		An optional pattern to be matched against a method name. Can be a string,
		//		a RegExp object or an array of strings and RegExp objects.
		//		If it is omitted, any name will satisfy the criteria.
	
		if(arguments.length > 1 && !(method instanceof Array)){
			method = [method];
		}
	
		var contextStack = aop.getContextStack();
		for(var i = contextStack.length - 1; i >= 0; --i){
			var c = contextStack[i];
			// check if instance matches
			if(instance && c.instance != instance){ continue; }
			if(!method){ return true; }
			var n = c.joinPoint.targetName;
			for(var j = method.length - 1; j >= 0; --j){
				var m = method[j];
				if(m instanceof RegExp){
					if(m.test(n)){ return true; }
				}else{
					if(n == m){ return true; }
				}
			}
		}
		return false;	// Boolean
	};
})();