| Package: MachII.filters |
| Inherits from: framework.BaseComponent < framework.EventFilter |
| An EventFilter for testing that an event's args contain a list of required fields. |
| Method Summary | |
|---|---|
| public void | configure() |
| public boolean | filterEvent(Event event, EventContext eventContext, [struct paramArgs="#StructNew()#"]) |
| private void | throwUsageException() |
| Methods inherited from framework.EventFilter: init |
|---|
| Methods inherited from framework.BaseComponent: isParameterDefined , hasParameter , setProperty , announceEvent , getAppManager , setAppManager , setParameters , getParameters , getProperty , getParameter , setParameter |
|---|
| Method Detail |
|---|
| configure |
|---|
public void configure( )
Parameters:
Code:
<cffunction name="configure" access="public" returntype="void" output="false"> </cffunction>
| filterEvent |
|---|
public boolean filterEvent( Event event, EventContext eventContext, [struct paramArgs="#StructNew()#"] )
Parameters:
| Event event |
| EventContext eventContext |
| [struct paramArgs="#StructNew()#"] |
Code:
<cffunction name="filterEvent" access="public" returntype="boolean"> <cfargument name="event" type="MachII.framework.Event" required="true" /> <cfargument name="eventContext" type="MachII.framework.EventContext" required="true" /> <cfargument name="paramArgs" type="struct" required="false" default="#StructNew()#" /> <cfset var isContinue = true /> <cfset var missingFields = '' /> <cfset var requiredFields = '' /> <cfset var invalidEvent = '' /> <cfset var field = 0 /> <cfset var newEventArgs = 0 /> <cfif StructKeyExists(arguments.paramArgs,this.REQUIRED_FIELDS_PARAM) AND StructKeyExists(arguments.paramArgs,this.INVALID_EVENT_PARAM)> <cfset requiredFields = arguments.paramArgs[this.REQUIRED_FIELDS_PARAM] /> <cfset invalidEvent = arguments.paramArgs[this.INVALID_EVENT_PARAM] /> <cfloop index="field" list="#requiredFields#" delimiters=","> <cfif (NOT event.isArgDefined(field)) OR (event.getArg(field,'') EQ '')> <cfset missingFields = ListAppend(missingFields, field, ',') /> <cfset isContinue = false /> </cfif> </cfloop> <cfelse> <cfset throwUsageException() /> </cfif> <cfif isContinue> <cfreturn true /> <cfelse> <cfset newEventArgs = arguments.event.getArgs() /> <cfset newEventArgs['message'] = "Please provide all required fields. Missing fields: " & ReplaceNoCase(missingFields,',',', ','all') & "." /> <cfset newEventArgs['missingFields'] = missingFields /> <cfset arguments.eventContext.announceEvent(invalidEvent, newEventArgs) /> <cfreturn false /> </cfif> </cffunction>
| throwUsageException |
|---|
private void throwUsageException( )
Parameters:
Code:
<cffunction name="throwUsageException" access="private" returntype="void" output="false"> <cfset var throwMsg = "RequiredFieldsFilter requires the following usage parameters: " & this.REQUIRED_FIELDS_PARAM & ", " & this.INVALID_EVENT_PARAM & "." /> <cfthrow message="#throwMsg#" /> </cffunction>