<cfcomponent>
	<cffunction name="getAppObject" access="public" output="false" returntype="any">
		<cfargument name="moduleName" type="string" required="yes">
		<cfset var result="">
			<cfif IsDefined("session.form.#arguments.moduleName#")>
				<cfset result=session.form[arguments.moduleName]>
			<cfelse>
				<cfset result=CreateObject("component", "components.corporate.#arguments.moduleName#")>
				<cfset result.setModuleName(arguments.moduleName)>
				<cflock scope="session" timeout="20" type="exclusive">
					<cfset session.form[arguments.moduleName]=result>
				</cflock>
			</cfif>
		<cfreturn result>
	</cffunction>

	<cffunction name="setAppObject" access="public" output="false">
		<cfargument name="appObject" type="any" required="yes">
		<cfargument name="moduleName" type="string" required="yes">
		<cflock scope="session" timeout="20" type="exclusive">
			<cfset session.form[arguments.moduleName]=arguments.appObject>
		</cflock>
	</cffunction>
</cfcomponent>