Location: A review of cardiac cellular electrophysiology models @ 1f3e877163d4 / dojo-presentation / js / dojo / dojox / lang / aspect / memoizerGuard.js

Author:
David Nickerson <david.nickerson@gmail.com>
Date:
2021-09-16 01:19:58+12:00
Desc:
update MNT model: * exposing membrane potential at the top level; * adding SED-ML; Using OpenCOR snapshot release 2021-09-14
Permanent Source URI:
https://staging.physiomeproject.org/workspace/a1/rawfile/1f3e877163d4caa8e1e97a9fc195f610d0e59095/dojo-presentation/js/dojo/dojox/lang/aspect/memoizerGuard.js

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

(function(){
	var aop = dojox.lang.aspect,
		reset = function(/*String|Array?*/ method){
			var that = aop.getContext().instance, t;
			if(!(t = that.__memoizerCache)){ return; }
			if(arguments.length == 0){
				delete that.__memoizerCache;
			}else if(dojo.isArray(method)){
				dojo.forEach(method, function(m){ delete t[m]; });
			}else{
				delete t[method];
			}
		};


	aop.memoizerGuard = function(/*String|Array?*/ method){
		// summary:
		//		Invalidates the memoizer's cache (see dojox.lang.aspect.memoizer)
		//		after calling certain methods.
		//
		// method:
		//		Optional method's name to be guarded: only cache for
		//		this method will be invalidated on call. Can be a string
		//		or an array of method names. If omitted the whole cache
		//		will be invalidated.

		return {	// Object
			after: function(){ reset(method); }
		};
	};
})();