import nl.idgis.giclient.template.Parameterable; import nl.idgis.giclient.template.Parameter; import nl.idgis.giclient.template.CallbackCounter; /** * @author copierrj */ class nl.idgis.giclient.template.AbstractParameterable implements Parameterable { private var parameters:Array; private var vars:Object; public function AbstractParameterable() { parameters = new Array(); vars = new Object(); } public function setParameter(name : String, value : Object) : Void { vars[name] = value; } public function addDymanicParameter(parameter : Parameter) : Void { parameters.push(parameter); } public function hasDynamicParameters():Boolean { return parameters.length > 0; } public function getVars():Object { return vars; } public function execute(callback:Function) { if(parameters.length > 0) { var callbackCounter:CallbackCounter = new CallbackCounter(parameters.length, callback); for(var i:Number = 0; i < parameters.length; i++) { Parameter(parameters[i]).execute(callbackCounter.getCallback()); } } else { callback(); } } }