Adobe ColdFusion 8

Creating and using objects

You use the cfobject tag or the CreateObject function to create a named instance of an object. You use other ColdFusion tags, such as cfset and cfoutput, to invoke the object's properties and methods.

The following sections provide information about creating and using objects that applies to both COM and CORBA objects. The examples assume a sample object named "obj", and that the object has a property called "Property", and methods called "Method1", "Method2", and "Method3".

Creating objects

You create, or instantiate (create a named instance of) an object in ColdFusion with the cfobject tag or CreateObject function. The specific attributes or parameters that you use depend on the type of object you use, and are described in detail in Creating and using COM objects and Creating CORBA objects. The following examples use a cfobject tag to create a COM object and a CreateObject function to create a CORBA object:

<cfobject type="COM" action="Create" name="obj" class="sample.MyObject">
obj = CreateObject("CORBA", "d:\temp\tester.ior", "IOR", "Visibroker")

ColdFusion releases any object created by cfobject or CreateObject, or returned by other objects, at the end of the ColdFusion page execution.

Using properties

Use standard ColdFusion statements to access properties as follows:

  1. To set a property, use a statement or cfset tag, such as the following:
    <cfset obj.property = "somevalue">

  2. To get a property, use a statement or cfset tag, such as the following:
    <cfset value = obj.property>

As shown in this example, you do not use parentheses on the right side of the equation to get a property value.

Calling methods

Object methods usually take zero or more arguments. You send In arguments, whose values are not returned to the caller by value. You send Out and In,Out arguments, whose values are returned to the caller, by reference. Arguments sent by reference usually have their value changed by the object. Some methods have return values, while others might not.

Use the following techniques to call methods:

  • If the method has no arguments, follow the method name with empty parentheses, as in the following cfset tag:
    <cfset retVal = obj.Method1()>

  • If the method has one or more arguments, put the arguments in parentheses, separated by commas, as in the following example, which has one integer argument and one string argument:
    <cfset x = 23>
    <cfset retVal = obj.Method1(x, "a string literal")>
    

  • If the method has reference (Out or In,Out) arguments, use double quotation marks (") around the name of the variable you are using for these arguments, as shown for the variable x in the following example:
    <cfset x = 23>
    <cfset retVal = obj.Method2("x","a string literal")>
    <cfoutput> #x#</cfoutput>
    

    In this example, if the object changes the value of x, it now contains a value other than 23.

Calling nested objects

ColdFusion supports nested (scoped) object calls. For example, if an object method returns another object, and you must invoke a property or method on that object, you can use the syntax in either of the following examples:

<cfset prop = myObj.X.Property>

or

<cfset objX = myObj.X>
<cfset prop = objX.Property>