| Package: MachII.framework.commands |
| Inherits from: framework.Command |
| An Command for redirecting. |
| Method Summary | |
|---|---|
| public RedirectCommand |
init(string eventName, string eventParameter, string redirectPersistParameter, [string moduleName=""], [string url=""], [string args=""], [boolean persist="false"], [string persistArgs=""], [string statusType="temporary"])
Used by the framework for initialization. |
| public boolean |
execute(Event event, EventContext eventContext)
Executes the command. |
| private string | getArgs() |
| private string | getEventName() |
| private string | getEventParameter() |
| private string | getModuleName() |
| private boolean | getPersist() |
| private string | getPersistArgs() |
| private string | getRedirectPersistParameter() |
| private string | getStatusType() |
| private string | getUrl() |
| private string |
makeRedirectUrl(Event event, EventContext eventContext)
Assembles the redirect url. |
| private void |
savePersistEventData(Event event, EventContext eventContext)
Saves persisted event data and returns the persistId. |
| private void | setArgs(string args) |
| private void | setEventName(string eventName) |
| private void | setEventParameter(string eventParameter) |
| private void | setModuleName(string moduleName) |
| private void | setPersist(boolean persist) |
| private void | setPersistArgs(string persistArgs) |
| private void | setRedirectPersistParameter(string redirectPersistParameter) |
| private void | setStatusType(string statusType) |
| private void | setUrl(string url) |
| Methods inherited from framework.Command: setParameter , getParameter , setParameters |
|---|
| Method Detail |
|---|
| execute |
|---|
public boolean execute( Event event, EventContext eventContext )
Executes the command.
Parameters:
| Event event |
| EventContext eventContext |
Code:
<cffunction name="execute" access="public" returntype="boolean" hint="Executes the command."> <cfargument name="event" type="MachII.framework.Event" required="true" /> <cfargument name="eventContext" type="MachII.framework.EventContext" required="true" /> <cfset var redirectUrl = "" /> <cfset var statusType = getStatusType() /> <cfif getPersist()> <cfset savePersistEventData(arguments.event, arguments.eventContext) /> </cfif> <cfset redirectUrl = makeRedirectUrl(arguments.event, arguments.eventContext) /> <cfset arguments.eventContext.clearEventQueue() /> <cfif statusType EQ "permanent"> <cfheader statuscode="301" statustext="Moved Permanently" /> <cfheader name="Location" value="#redirectUrl#" /> <cfexit /> <cfelseif statusType EQ "prg"> <cfheader statuscode="303" statustext="See Other" /> <cfheader name="Location" value="#redirectUrl#" /> <cfexit /> <cfelse> <cflocation url="#redirectUrl#" addtoken="no" /> </cfif> <cfreturn false /> </cffunction>
| getArgs |
|---|
private string getArgs( )
Parameters:
Code:
<cffunction name="getArgs" access="private" returntype="string" output="false"> <cfreturn variables.args /> </cffunction>
| getEventName |
|---|
private string getEventName( )
Parameters:
Code:
<cffunction name="getEventName" access="private" returntype="string" output="false"> <cfreturn variables.eventName /> </cffunction>
| getEventParameter |
|---|
private string getEventParameter( )
Parameters:
Code:
<cffunction name="getEventParameter" access="private" returntype="string" output="false"> <cfreturn variables.eventParameter /> </cffunction>
| getModuleName |
|---|
private string getModuleName( )
Parameters:
Code:
<cffunction name="getModuleName" access="private" returntype="string" output="false"> <cfreturn variables.moduleName /> </cffunction>
| getPersist |
|---|
private boolean getPersist( )
Parameters:
Code:
<cffunction name="getPersist" access="private" returntype="boolean" output="false"> <cfreturn variables.persist /> </cffunction>
| getPersistArgs |
|---|
private string getPersistArgs( )
Parameters:
Code:
<cffunction name="getPersistArgs" access="private" returntype="string" output="false"> <cfreturn variables.persistArgs /> </cffunction>
| getRedirectPersistParameter |
|---|
private string getRedirectPersistParameter( )
Parameters:
Code:
<cffunction name="getRedirectPersistParameter" access="private" returntype="string" output="false"> <cfreturn variables.redirectPersistParameter /> </cffunction>
| getStatusType |
|---|
private string getStatusType( )
Parameters:
Code:
<cffunction name="getStatusType" access="private" returntype="string" output="false"> <cfreturn variables.statusType /> </cffunction>
| getUrl |
|---|
private string getUrl( )
Parameters:
Code:
<cffunction name="getUrl" access="private" returntype="string" output="false"> <cfreturn variables.url /> </cffunction>
| init |
|---|
public RedirectCommand init( string eventName, string eventParameter, string redirectPersistParameter, [string moduleName=""], [string url=""], [string args=""], [boolean persist="false"], [string persistArgs=""], [string statusType="temporary"] )
Used by the framework for initialization.
Parameters:
| string eventName |
| string eventParameter |
| string redirectPersistParameter |
| [string moduleName=""] |
| [string url=""] |
| [string args=""] |
| [boolean persist="false"] |
| [string persistArgs=""] |
| [string statusType="temporary"] |
Code:
<cffunction name="init" access="public" returntype="RedirectCommand" output="false" hint="Used by the framework for initialization."> <cfargument name="eventName" type="string" required="true" /> <cfargument name="eventParameter" type="string" required="true" /> <cfargument name="redirectPersistParameter" type="string" required="true" /> <cfargument name="moduleName" type="string" required="false" default="" /> <cfargument name="url" type="string" required="false" default="" /> <cfargument name="args" type="string" required="false" default="" /> <cfargument name="persist" type="boolean" required="false" default="false" /> <cfargument name="persistArgs" type="string" required="false" default="" /> <cfargument name="statusType" type="string" required="false" default="temporary" /> <cfset setEventName(arguments.eventName) /> <cfset setEventParameter(arguments.eventParameter) /> <cfset setRedirectPersistParameter(arguments.redirectPersistParameter) /> <cfset setModuleName(arguments.moduleName) /> <cfset setUrl(arguments.url) /> <cfset setArgs(arguments.args) /> <cfset setPersist(arguments.persist) /> <cfset setPersistArgs(arguments.persistArgs) /> <cfset setStatusType(arguments.statusType) /> <cfif getPersist()> <cfset setArgs(ListAppend(getArgs(), getRedirectPersistParameter())) /> </cfif> <cfreturn this /> </cffunction>
| makeRedirectUrl |
|---|
private string makeRedirectUrl( Event event, EventContext eventContext )
Assembles the redirect url.
Parameters:
| Event event |
| EventContext eventContext |
Code:
<cffunction name="makeRedirectUrl" access="private" returntype="string" output="false" hint="Assembles the redirect url."> <cfargument name="event" type="MachII.framework.Event" required="true" /> <cfargument name="eventContext" type="MachII.framework.EventContext" required="true" /> <cfset var redirectUrl = "" /> <cfset var params = StructNew() /> <cfset var args = getArgs() /> <cfset var i = "" /> <cfloop list="#args#" index="i" delimiters=","> <cfif arguments.event.isArgDefined(i) AND IsSimpleValue(arguments.event.getArg(i))> <cfset params[i] = arguments.event.getArg(i) /> </cfif> </cfloop> <cfset redirectUrl = arguments.eventContext.getAppManager().getRequestManager().buildUrl(getModuleName(), getEventName(), params, getUrl()) /> <cfreturn redirectUrl /> </cffunction>
| savePersistEventData |
|---|
private void savePersistEventData( Event event, EventContext eventContext )
Saves persisted event data and returns the persistId.
Parameters:
| Event event |
| EventContext eventContext |
Code:
<cffunction name="savePersistEventData" access="private" returntype="void" output="false" hint="Saves persisted event data and returns the persistId."> <cfargument name="event" type="MachII.framework.Event" required="true" /> <cfargument name="eventContext" type="MachII.framework.EventContext" required="true" /> <cfset var args = StructNew() /> <cfset var persistArgs = getPersistArgs() /> <cfset var persistId = "" /> <cfset var i = "" /> <cfif NOT ListLen(persistArgs)> <cfset args = arguments.event.getArgs() /> <cfif StructKeyExists(args, getEventParameter())> <cfset StructDelete(args, getEventParameter(), FALSE) /> </cfif> <cfelse> <cfloop list="#persistArgs#" index="i" delimiters=","> <cfif arguments.event.isArgDefined(i)> <cfset args[i] = arguments.event.getArg(i) /> </cfif> </cfloop> </cfif> <cfset persistId = arguments.eventContext.getAppManager().getRequestManager().savePersistEventData(args) /> <cfset arguments.event.setArg(getRedirectPersistParameter(), persistId) /> </cffunction>
| setArgs |
|---|
private void setArgs( string args )
Parameters:
| string args |
Code:
<cffunction name="setArgs" access="private" returntype="void" output="false"> <cfargument name="args" type="string" required="true" /> <cfset variables.args = arguments.args /> </cffunction>
| setEventName |
|---|
private void setEventName( string eventName )
Parameters:
| string eventName |
Code:
<cffunction name="setEventName" access="private" returntype="void" output="false"> <cfargument name="eventName" type="string" required="true" /> <cfset variables.eventName = arguments.eventName /> </cffunction>
| setEventParameter |
|---|
private void setEventParameter( string eventParameter )
Parameters:
| string eventParameter |
Code:
<cffunction name="setEventParameter" access="private" returntype="void" output="false"> <cfargument name="eventParameter" type="string" required="true" /> <cfset variables.eventParameter = arguments.eventParameter /> </cffunction>
| setModuleName |
|---|
private void setModuleName( string moduleName )
Parameters:
| string moduleName |
Code:
<cffunction name="setModuleName" access="private" returntype="void" output="false"> <cfargument name="moduleName" type="string" required="true" /> <cfset variables.moduleName = arguments.moduleName /> </cffunction>
| setPersist |
|---|
private void setPersist( boolean persist )
Parameters:
| boolean persist |
Code:
<cffunction name="setPersist" access="private" returntype="void" output="false"> <cfargument name="persist" type="boolean" required="true" /> <cfset variables.persist = arguments.persist /> </cffunction>
| setPersistArgs |
|---|
private void setPersistArgs( string persistArgs )
Parameters:
| string persistArgs |
Code:
<cffunction name="setPersistArgs" access="private" returntype="void" output="false"> <cfargument name="persistArgs" type="string" required="true" /> <cfset variables.persistArgs = arguments.persistArgs /> </cffunction>
| setRedirectPersistParameter |
|---|
private void setRedirectPersistParameter( string redirectPersistParameter )
Parameters:
| string redirectPersistParameter |
Code:
<cffunction name="setRedirectPersistParameter" access="private" returntype="void" output="false"> <cfargument name="redirectPersistParameter" type="string" required="true" /> <cfset variables.redirectPersistParameter = arguments.redirectPersistParameter /> </cffunction>
| setStatusType |
|---|
private void setStatusType( string statusType )
Parameters:
| string statusType |
Code:
<cffunction name="setStatusType" access="private" returntype="void" output="false"> <cfargument name="statusType" type="string" required="true" /> <cfset variables.statusType = arguments.statusType /> </cffunction>
| setUrl |
|---|
private void setUrl( string url )
Parameters:
| string url |
Code:
<cffunction name="setUrl" access="private" returntype="void" output="false"> <cfargument name="url" type="string" required="true" /> <cfset variables.url = arguments.url /> </cffunction>