| Package: MachII.framework |
| Manages registered Listeners for the framework. |
| Method Summary | |
|---|---|
| public void | init(string configXML, AppManager appManager) |
| package void | addListener(string name, Listener listener) |
| public void | configure() |
| public AppManager | getAppManager() |
| public Listener | getListener(string listenerName) |
| public boolean | isListenerDefined(string listenerName) |
| public void | setAppManager(AppManager appManager) |
| Method Detail |
|---|
| addListener |
|---|
package void addListener( string name, Listener listener )
Parameters:
| string name |
| Listener listener |
Code:
<cffunction name="addListener" access="package" returntype="void" output="true"> <cfargument name="name" type="string" required="true"> <cfargument name="listener" type="MachII.framework.Listener" required="true"> <cfset variables.listeners[arguments.name] = arguments.listener /> </cffunction>
| configure |
|---|
public void configure( )
Parameters:
Code:
<cffunction name="configure" access="public" returntype="void"> <cfset var key = 0 /> <cfloop collection="#variables.listeners#" item="key"> <cfset getListener(key).configure() /> </cfloop> </cffunction>
| getAppManager |
|---|
public AppManager getAppManager( )
Parameters:
Code:
<cffunction name="getAppManager" access="public" returntype="MachII.framework.AppManager" output="false"> <cfreturn variables.appManager /> </cffunction>
| getListener |
|---|
public Listener getListener( string listenerName )
Parameters:
| string listenerName |
Code:
<cffunction name="getListener" access="public" returntype="MachII.framework.Listener" output="true"> <cfargument name="listenerName" type="string" required="true"> <cfif isListenerDefined(arguments.listenerName)> <cfreturn variables.listeners[arguments.listenerName] /> <cfelse> <cfthrow type="ListenerNotDefined" message="Listener with name #arguments.listenerName# is not defined." errorcode="1010" /> </cfif> </cffunction>
| init |
|---|
public void init( string configXML, AppManager appManager )
Parameters:
| string configXML |
| AppManager appManager |
Code:
<cffunction name="init" access="public" returntype="void" output="false">
<cfargument name="configXML" type="string" required="true" />
<cfargument name="appManager" type="MachII.framework.AppManager" required="true" />
<cfset var listenerNodes = "" />
<cfset var listenerParams = "" />
<cfset var i = 0 />
<cfset var name = 0 />
<cfset var type = 0 />
<cfset var paramNodes = 0 />
<cfset var j = 0 />
<cfset var paramName = 0 />
<cfset var paramValue = 0 />
<cfset var invokerNodes = 0 />
<cfset var invokerType = 0 />
<cfset var invoker = 0 />
<cfset var listener = 0 />
<cfset setAppManager(arguments.appManager) />
<cfset listenerNodes = XMLSearch(configXML,"//listeners/listener") />
<cfloop from="1" to="#ArrayLen(listenerNodes)#" index="i">
<cfset name = listenerNodes[i].xmlAttributes['name'] />
<cfset type = listenerNodes[i].xmlAttributes['type'] />
<cfset listenerParams = StructNew() />
<cfset paramNodes = XMLSearch(listenerNodes[i], "./parameters/parameter") />
<cfloop from="1" to="#ArrayLen(paramNodes)#" index="j">
<cfset paramName = paramNodes[j].xmlAttributes['name'] />
<cfset paramValue = paramNodes[j].xmlAttributes['value'] />
<cfset listenerParams[paramName] = paramValue />
</cfloop>
<cfset invokerNodes = XMLSearch(listenerNodes[i], "./invoker") />
<cfset invokerType = invokerNodes[1].xmlAttributes['type'] />
<cfset invoker = CreateObject('component', invokerType) />
<cfset invoker.init() />
<cfset listener = CreateObject('component', type) />
<cfset listener.init(arguments.appManager, listenerParams) />
<cfset listener.setInvoker(invoker) />
<cfset addListener(name, listener) />
</cfloop>
</cffunction>
| isListenerDefined |
|---|
public boolean isListenerDefined( string listenerName )
Parameters:
| string listenerName |
Code:
<cffunction name="isListenerDefined" access="public" returntype="boolean" output="false"> <cfargument name="listenerName" type="string" required="true" /> <cfreturn StructKeyExists(variables.listeners, arguments.listenerName) /> </cffunction>
| setAppManager |
|---|
public void setAppManager( AppManager appManager )
Parameters:
| AppManager appManager |
Code:
<cffunction name="setAppManager" access="public" returntype="void" output="false"> <cfargument name="appManager" type="MachII.framework.AppManager" required="true" /> <cfset variables.appManager = arguments.appManager /> </cffunction>