| Package: MachII.framework |
| Handles request to event conversion for the framework. |
| Method Summary | |
|---|---|
| public void |
init(AppManager appManager)
Initializes the RequestHandler. |
| private AppManager | getAppManager() |
| private string | getEventName(struct eventArgs) |
| private struct | getRequestEventArgs() |
| public void | handleEventRequest(string eventName, struct eventArgs) |
| public void | handleRequest() |
| private void | setAppManager(AppManager appManager) |
| Method Detail |
|---|
| getAppManager |
|---|
private AppManager getAppManager( )
Parameters:
Code:
<cffunction name="getAppManager" access="private" returntype="MachII.framework.AppManager" output="false"> <cfreturn variables.appManager /> </cffunction>
| getEventName |
|---|
private string getEventName( struct eventArgs )
Parameters:
| struct eventArgs |
Code:
<cffunction name="getEventName" access="private" returntype="string" output="false">
<cfargument name="eventArgs" type="struct" required="true" />
<cfset var eventParam = getAppManager().getPropertyManager().getProperty('eventParameter') />
<cfset var eventName = "" />
<cfif StructKeyExists(arguments.eventArgs, eventParam)>
<cfset eventName = arguments.eventArgs[eventParam] />
<cfelse>
<cfset eventName = getAppManager().getPropertyManager().getProperty('defaultEvent') />
</cfif>
<cfreturn eventName />
</cffunction>
| getRequestEventArgs |
|---|
private struct getRequestEventArgs( )
Parameters:
Code:
<cffunction name="getRequestEventArgs" access="private" returntype="struct" output="false">
<cfset var eventArgs = StructNew() />
<cfset var paramPrecedence = getAppManager().getPropertyManager().getProperty('parameterPrecedence') />
<cfset var overwriteFormParams = (paramPrecedence EQ 'url') />
<cfset StructAppend(eventArgs, form) />
<cfset StructAppend(eventArgs, url, overwriteFormParams) />
<cfreturn eventArgs />
</cffunction>
| handleEventRequest |
|---|
public void handleEventRequest( string eventName, struct eventArgs )
Parameters:
| string eventName |
| struct eventArgs |
Code:
<cffunction name="handleEventRequest" access="public" returntype="void" output="true">
<cfargument name="eventName" type="string" required="true" />
<cfargument name="eventArgs" type="struct" required="true" default="#StructNew()#" />
<cfset var exception = "" />
<cfset var eventContext = getAppManager().createEventContext() />
<cfset request.eventContext = eventContext />
<cftry>
<cfif NOT getAppManager().getEventManager().isEventDefined(arguments.eventName)>
<cfthrow message="Event-handler for event #arguments.eventName# is not defined." />
</cfif>
<cfif getAppManager().getEventManager().isEventPublic(arguments.eventName)>
<cfset eventContext.announceEvent(arguments.eventName, arguments.eventArgs) />
<cfelse>
<cfthrow message="Event-handler for event #arguments.eventName# is not accessible." />
</cfif>
<cfcatch type="any">
<cfset exception = CreateObject('component', 'MachII.util.Exception') />
<cfset exception.init(cfcatch.type, cfcatch.message, cfcatch.errorCode, cfcatch.detail, cfcatch.extendedInfo, cfcatch.tagContext) />
<cfset eventContext.handleException(exception, true) />
</cfcatch>
</cftry>
<cfset eventContext.processEvents() />
</cffunction>
| handleRequest |
|---|
public void handleRequest( )
Parameters:
Code:
<cffunction name="handleRequest" access="public" returntype="void" output="true"> <cfset var eventArgs = getRequestEventArgs() /> <cfset var eventName = getEventName(eventArgs) /> <cfset handleEventRequest(eventName, eventArgs) /> </cffunction>
| init |
|---|
public void init( AppManager appManager )
Initializes the RequestHandler.
Parameters:
| AppManager appManager |
Code:
<cffunction name="init" access="public" returntype="void" output="false" hint="Initializes the RequestHandler."> <cfargument name="appManager" type="MachII.framework.AppManager" required="true" /> <cfset setAppManager(arguments.appManager) /> </cffunction>
| setAppManager |
|---|
private void setAppManager( AppManager appManager )
Parameters:
| AppManager appManager |
Code:
<cffunction name="setAppManager" access="private" returntype="void" output="false"> <cfargument name="appManager" type="MachII.framework.AppManager" required="true" output="false" /> <cfset variables.appManager = arguments.appManager /> </cffunction>