Listing 1
<CFCOMPONENT>
<!--- Initialize variables --->
<CFSET THIS.initialized=FALSE>
<!--- Init user --->
<CFFUNCTION NAME="init"
RETURNTYPE="boolean">
<CFARGUMENT NAME="userid"
TYPE="numeric"
REQUIRED="true">
<!--- Get user --->
<CFQUERY DATASOURCE="dsn"
NAME="userRec">
SELECT *
FROM users
WHERE userid=#userid#
</CFQUERY>
<!--- Check got a user --->
<CFIF userRec.RecordCount IS 1>
<!--- Save user record --->
<CFSET THIS.userRec=userRec>
<!--- Set init flag --->
<CFSET THIS.initialized=TRUE>
</CFIF>
<CFRETURN THIS.initialized>
</CFFUNCTION>
<!--- Get user name --->
<CFFUNCTION NAME="GetFullName"
RETURNTYPE="string">
<!--- Init return variable --->
<CFSET result="">
<!--- Check initialized --->
<CFIF THIS.initialized>
<CFSET result="#Trim(THIS.UserRec.NameFirst#)#
#Trim(THIS.UserRec.NameLast#)#">
</CFIF>
<CFRETURN result>
</CFFUNCTION>
<!--- Get user email --->
<CFFUNCTION NAME="GetEMail"
RETURNTYPE="string">
<!--- Init return variable --->
<CFSET result="">
<!--- Check initialized --->
<CFIF THIS.initialized>
<CFSET result=Trim(THIS.UserRec.email)>
</CFIF>
<CFRETURN result>
</CFFUNCTION>
</CFCOMPONENT>