Adobe ColdFusion 8

GetMetaData

Description

Gets metadata (such as the methods, properties, and parameters of a component) associated with an object that is deployed on the ColdFusion server.

Returns

Structured metadata information: for ColdFusion components (CFCs) and user defined functions (UDFs), a structure; for query objects, an array of structures.

Category

System functions

Function syntax

GetMetaData(object)

See also

CreateObject, GetComponentMetaData, QueryAddColumn, QueryNew

History

ColdFusion MX 7: Added support for getting query object metadata.

ColdFusion MX: Added this function.

Parameters

Parameter

Description

object

A ColdFusion component, user-defined function, or query object. Within a CFC, the parameter can also specify the This scope.

Usage

This function provides information about application data, and lets applications dynamically determine the structure of an object and how to use it. This function is useful for CFCs and query objects. The metadata for a CFC includes information on the component and its functions, arguments, and properties. The getMetaData function also returns metadata for user-defined functions that are not part of CFCs. Use the GetComponentMetaData function to get information about ColdFusion interfaces, or about CFC definitions that you have not instantiated.

The following table lists the data returned by the function for supported object types:

Object

Field

Description

Component

A structure containing the following fields:

 

displayname

Value of the cfcomponent tag displayname attribute, if any.

extends

Metadata for the component's ancestor component. Components that do not explicitly extend another component extend the WEB-INF.cftags.component.

fullname

The dot delimited path from the cf_webroot of the component.

functions

Array of metadata structures for the component's functions.

hint

Value of the cfcomponent tag displayname attribute, if any.

implements

A structure containing the metadata of the interfaces that the component implements. The key of the structure is the interface name, and the value is a structure containing the interface metadata.

name

Component name, including the period-delimited path from a component search root such as the web root or a directory specified in the administrator Custom Tag Paths page.

output

Value of the cfcomponent tag output attribute, if any

path

Absolute path to the component.

properties

Array of structures containing metadata specified by the component's cfproperty tags, if any.

type

Always, component.

userMetadata

User-specified attributes in the cfcomponent tag

Function

A structure containing the following fields.

 

access

Value of the cffunction tag access attribute, if any.

displayname

Value of the cffunction tag displayname attribute, if any.

hint

Value of the cffunction tag hint attribute, if any.

name

Function name.

output

Value of the cffunction tag output attribute, if any.

parameters

Array of structures containing metadata for the function parameters.

returntype

Value of the cffunction tag returntype attribute, if any.

roles

Value of the cffunction tag output attribute, if any.

userMetadata

User-specified attributes in the cffunction tag.

Parameter or Property

A structure containing the following fields:

 

default

Value of the cfargument or cfproperty tag default attribute, if any.

displayname

Value of the cfargument or cfproperty tag displayname attribute, if any.

hint

Value of the cfargument or cfproperty tag hint attribute, if any.

name

Function parameter or CFC property name.

required

Value of the cfargument or cfproperty tag required attribute, if any.

type

Value of the cfargument or cfproperty tag type attribute, if any.

userMetadata

User-specified attributes in the argument tag.

Query

An array of structures containing the following elements:

 

IsCaseSensitive

Boolean value indicating whether character data must be case correct.

Name

The column name.

TypeName

The SQL data type (Omitted if the query object is created with QueryNew without specifying types.)

Note: Use the This scope to access component metadata inside the CFC. The This scope is available at runtime in the component body and in the CFC methods. It is used to read and write variables that are present during the life of the component.

For more information, see "Using introspection to get information about components" in the ColdFusion Developer's Guide.

Example

The following example uses the cfdump tag to display metadata for the utilities CFC that is used by the ColdFusion component browser. It also displays the names and data types of the fields in the cfdocexamples database Employees table.

<!--- Create an instance of the Component Explorer utilities CFC. 
        and get its metadata --->
<cfscript>
componentutils = createObject("component", "cfide.componentutils.utils");
utilmetadata = getMetaData(componentutils);
</cfscript>

<h4>Metadata for the CFC component utilities</h4>
<cfdump var="#utilmetadata#">

<!--- use GetMetadata to get the names and data types of the fields in the 
            cfdocexamples Employees table --->
<cfquery name="getemployees" datasource="cfdocexamples">
SELECT *
FROM Employees
</cfquery>
<cfset employeemeta=getMetaData(getemployees)>

<h4>The Employees table has the following columns</h4>
<cfloop index="i" from="1" to="#arrayLen(employeemeta)#">
    <cfoutput>
        #employeemeta[i].name# #employeemeta[i].TypeName# #employeemeta[i].isCaseSensitive#<br>
    </cfoutput>
</cfloop>