Como determinar se variáveis ColdFusion são objetos

Para dar continuidade à ferramenta para debug de CFCs que estou fazendo, precisamos saber se uma variável é do tipo “object” ou não para usar o debug correspondente. No ColdFusion é simples, basta usar a função “isObject”, como no exemplo abaixo:

<cfscript>
roles = ArrayNew(1);
roles[1] = 1;
roles[2] = 2;
roles[3] = 3;

user = CreateObject(“component”,”UserVO”);
user.setUserId(“123456”);
user.setName(“Hamad”);
user.setRoles(roles);
</cfscript>

<cfoutput>#isObject(user)#</cfoutput>
<br /><br />

<cfset user = “Hamad Amaral”>
<cfoutput>#isObject(user)#</cfoutput>
<cfscript>
roles = ArrayNew(1);
roles[1] = 1;
roles[2] = 2;
roles[3] = 3;

user = CreateObject(“component”,”UserVO”);
user.setUserId(“123456”);
user.setName(“Hamad”);
user.setRoles(roles);
</cfscript>

<cfoutput>#isObject(user)#</cfoutput>
<br /><br />

<cfset user = “Hamad Amaral”>
<cfoutput>#isObject(user)#</cfoutput>

Este é o UserVO.cfc:

<cfcomponent output=”false” alias=”UserVO”>

<cfproperty name=”userId” type=”string” default=””>
<cfproperty name=”name” type=”string” default=””>
<cfproperty name=”roles” type=”array” default=””>

<cfscript>
variables.userId = “”;
variables.name = “”;
variables.roles = ArrayNew(1);
</cfscript>

<cffunction name=”init” output=”false” returntype=”UserVO”>
<cfreturn this>
</cffunction>

<cffunction name=”getUserId” output=”false” access=”public” returntype=”any”>
<cfreturn variables.userId>
</cffunction>
<cffunction name=”setUserId” output=”false” access=”public” returntype=”void”>
<cfargument name=”val” required=”true”>
<cfset variables.userId = arguments.val>
</cffunction>

<cffunction name=”getName” output=”false” access=”public” returntype=”any”>
<cfreturn variables.name>
</cffunction>
<cffunction name=”setName” output=”false” access=”public” returntype=”void”>
<cfargument name=”val” required=”true”>
<cfset variables.name = arguments.val>
</cffunction>

<cffunction name=”getRoles” output=”false” access=”public” returntype=”any”>
<cfreturn variables.roles>
</cffunction>
<cffunction name=”setRoles” output=”false” access=”public” returntype=”void”>
<cfargument name=”val” required=”true”>
<cfset variables.roles = arguments.val>
</cffunction>

</cfcomponent>

Tags: , ,

Leave a Reply