| Package: MachII.filters |
| Inherits from: framework.BaseComponent < framework.EventFilter |
| A robust EventFilter for creating and populating beans in events. |
<!--- 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: EventBeanFilter.cfc 4352 2006-08-29 20:35:15Z pfarrell $ Created version: 1.0.10 Updated version: 1.1.0 EventBeanFilter This event-filter creates beans in an event and populates the beans using event-args. Beans are expected to follow the standard Java bean pattern of having a no argument constuctor (an init() function with no required arguments) and setter functions with name setXXX() (with a single argument named XXX) for field XXX. If the "fields" parameter is not specified for the filter, then the entire event-args struct will be passed to the bean's init() function as an argument collection. Configuration Parameters: ["name"] - The name of the bean to create (in the event-args). ["type"] - The type of the bean to create. ["fields"] - The fields from the event-args to set in the bean. Event-Handler Parameters: These parameters will override configuration parameters specified with the same name. "name" - The name of the bean to create (in the event-args). "type" - The type of the bean to create. "fields" - The fields from the event-args to set in the bean. ---> |
| Method Summary | |
|---|---|
| public void |
configure()
Configures the filter. |
| public boolean |
filterEvent(Event event, EventContext eventContext, [struct paramArgs="#StructNew()#"])
Runs the filter event. |
| private BeanUtil | getBeanUtil() |
| private void | setBeanUtil(BeanUtil beanUtil) |
| private void | throwUsageException() |
| Methods inherited from framework.EventFilter: init |
|---|
| Methods inherited from framework.BaseComponent: isParameterDefined , setPropertyManager , setParameters , getPropertyManager , announceEvent , getAppManager , setAppManager , hasParameter , getParameter , getProperty , getParameters , setProperty , setParameter |
|---|
| Method Detail |
|---|
| configure |
|---|
public void configure( )
Configures the filter.
Parameters:
Code:
<cffunction name="configure" access="public" returntype="void" output="false"
hint="Configures the filter.">
<cfset setBeanUtil( CreateObject('component','MachII.util.BeanUtil') ) />
</cffunction>
| filterEvent |
|---|
public boolean filterEvent( Event event, EventContext eventContext, [struct paramArgs="#StructNew()#"] )
Runs the filter event.
Parameters:
| Event event |
| EventContext eventContext |
| [struct paramArgs="#StructNew()#"] |
Code:
<cffunction name="filterEvent" access="public" returntype="boolean" hint="Runs the filter event."> <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>