EventBeanFilter

Package: MachII.filters
Inherits from: framework.BaseComponent  <  framework.EventFilter
A robust EventFilter for creating and populating beans in events.
Method Summary
public void configure()
public boolean filterEvent(Event event, EventContext eventContext, [struct paramArgs="#StructNew()#"])
private BeanUtil getBeanUtil()
private void setBeanUtil(BeanUtil beanUtil)
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">
		<cfset setBeanUtil( CreateObject('component','MachII.util.BeanUtil') ) />
	</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 bean = "" />
		<cfset var beanName = "" />
		<cfset var beanType = "" />
		<cfset var beanFields = "" />
		<cfset var isFieldsDefined = false />
		
		
		<cfif StructKeyExists(arguments.paramArgs, this.BEAN_NAME_PARAM)>
			<cfset beanName = paramArgs[this.BEAN_NAME_PARAM] />
		<cfelseif isParameterDefined(this.BEAN_NAME_PARAM)>
			<cfset beanName = getParameter(this.BEAN_NAME_PARAM) />
		</cfif>
		
		
		<cfif StructKeyExists(arguments.paramArgs, this.BEAN_TYPE_PARAM)>
			<cfset beanType = paramArgs[this.BEAN_TYPE_PARAM] />
		<cfelseif isParameterDefined(this.BEAN_TYPE_PARAM)>
			<cfset beanType = getParameter(this.BEAN_TYPE_PARAM) />
		</cfif>
		
		
		<cfif StructKeyExists(arguments.paramArgs, this.BEAN_FIELDS_PARAM)>
			<cfset beanFields = paramArgs[this.BEAN_FIELDS_PARAM] />
			<cfset isFieldsDefined = true />
		<cfelseif isParameterDefined(this.BEAN_FIELDS_PARAM)>
			<cfset beanFields = getParameter(this.BEAN_FIELDS_PARAM) />
			<cfset isFieldsDefined = true />
		<cfelse>
			<cfset isFieldsDefined = false />
		</cfif>
		
		
		<cfif beanName EQ '' OR beanType EQ ''>
			<cfset throwUsageException() />
		</cfif>
		
		
		<cfif isFieldsDefined>
			<cfset bean = getBeanUtil().createBean(beanType) />
			<cfset getBeanUtil().setBeanFields(bean, beanFields, arguments.event.getArgs()) />
		<cfelse>
			<cfset bean = getBeanUtil().createBean(beanType, arguments.event.getArgs()) />
		</cfif>
		
		
		<cfset arguments.event.setArg(beanName, bean, beanType) />
		
		<cfreturn true />
	</cffunction> 

getBeanUtil

private BeanUtil getBeanUtil( )

Parameters:

Code:

	<cffunction name="getBeanUtil" access="private" returntype="MachII.util.BeanUtil" output="false">
		<cfreturn variables.beanUtil />
	</cffunction> 

setBeanUtil

private void setBeanUtil( BeanUtil beanUtil )

Parameters:
BeanUtil beanUtil

Code:

	<cffunction name="setBeanUtil" access="private" returntype="void" output="false">
		<cfargument name="beanUtil" type="MachII.util.BeanUtil" required="true" />
		<cfset variables.beanUtil = arguments.beanUtil />
	</cffunction> 

throwUsageException

private void throwUsageException( )

Parameters:

Code:

	<cffunction name="throwUsageException" access="private" returntype="void" output="false">
		<cfset var throwMsg = "EventBeanFilter requires the following usage parameters: " & this.BEAN_NAME_PARAM & ", " & this.BEAN_TYPE_PARAM & "." />
		<cfthrow message="#throwMsg#" />
	</cffunction>