| Package: MachII.framework |
| Handles request to event conversion for the framework. |
<!--- License: Copyright 2006 Mach-II Corporation Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. Copyright: Mach-II Corporation Author: Ben Edwards (ben@ben-edwards.com) $Id: RequestHandler.cfc 4352 2006-08-29 20:35:15Z pfarrell $ Created version: 1.0.0 Updated version: 1.1.1 Notes: - Added request event name functionality. (pfarrell) ---> |
| 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)
Handles an event request made to the framework. |
| public void |
handleRequest()
Handles a request made to the framework. |
| 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) AND arguments.eventArgs[eventParam] NEQ ''>
<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 )
Handles an event request made to the framework.
Parameters:
| string eventName |
| struct eventArgs |
Code:
<cffunction name="handleEventRequest" access="public" returntype="void" output="true"
hint="Handles an event request made to the framework.">
<cfargument name="eventName" type="string" required="true"
hint="The name of the requested event." />
<cfargument name="eventArgs" type="struct" required="true" default="#StructNew()#"
hint="The event arguments provided in the request." />
<cfset var exception = "" />
<cfset var eventContext = getAppManager().createEventContext(arguments.eventName) />
<cfset request.eventContext = eventContext />
<cftry>
<cfif NOT getAppManager().getEventManager().isEventDefined(arguments.eventName)>
<cfthrow type="MachII.framework.EventHandlerNotDefined"
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 type="MachII.framework.EventHandlerNotAccessible"
message="Event-handler for event '#arguments.eventName#' is not accessible." />
</cfif>
<cfcatch type="any">
<cfset exception = CreateObject('component', 'MachII.util.Exception') />
<cfset exception.wrapException(cfcatch) />
<cfset eventContext.handleException(exception, true) />
</cfcatch>
</cftry>
<cfset eventContext.processEvents() />
</cffunction>
| handleRequest |
|---|
public void handleRequest( )
Handles a request made to the framework.
Parameters:
Code:
<cffunction name="handleRequest" access="public" returntype="void" output="true" hint="Handles a request made to the framework."> <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" /> <cfset variables.appManager = arguments.appManager /> </cffunction>