GETMETADATA  
説明

ColdFusion server に配置されるオブジェクトに割り当てられたメタデータ (コンポーネントのメソッド、プロパティ、パラメータなど) を取得します。

 
戻り値

構造化されたメタデータ情報 : ColdFusion コンポーネント (CFC) およびユーザー定義関数の場合は、構造体。クエリーオブジェクトの場合は、構造体の配列。

 
カテゴリ

システム関数

 
関数のシンタックス
GetMetaData(object)
 
関連項目

CreateObject、QueryAddColumn、QueryNew

 
ヒストリ

ColdFusion MX 7: クエリーオブジェクトのメタデータを取得できるようになりました。

ColdFusion MX: この関数が追加されました。

 
パラメータ

 
使用方法

この関数は、アプリケーションデータに関する情報を提供し、オブジェクトの構造体およびその使用方法をアプリケーションでダイナミックに確定できるようにします。この関数は、CFC およびクエリーオブジェクトに役立ちます。CFC のメタデータは、コンポーネントに関する情報、その関数、引数、およびプロパティに関する情報などです。getMetaData 関数は、CFC の一部ではないユーザー定義関数のメタデータも返します。

次の表に、この関数によって返されるデータを、サポートされるオブジェクトタイプ別に示します。

     
コンポーネント
次のフィールドを含む構造体です。
 
displayname
存在する場合には、cfcomponent タグの displayname 属性の値です。
extends
コンポーネントの先祖コンポーネントのメタデータです。他のコンポーネ ントを明示的に拡張しないコンポーネントは、WEB- INF.cftags.component を拡張します。
functions
コンポーネントの関数に関するメタデータ構造体の配列です。
hint
存在する場合には、cfcomponent タグの displayname 属性の値です。
name
Web ルートディレクトリ、ColdFusion Administrator の [カスタムタグ のパス] ページに指定されているディレクトリなどのコンポーネント検索 ルートからのピリオド区切りのパスを含む、コンポーネント名です。
output
存在する場合には、cfcomponent タグの output 属性の値です。
path
コンポーネントの絶対パスです。
properties
存在する場合には、コンポーネントの cfproperty タグで指定されるメタ データを含む構造体の配列です。
type
常にコンポーネントです。
userMetadata
cfcomponent タグ内のユーザー指定の属性です。
関数
次のフィールドを含む構造体です。
 
access
存在する場合には、cffunction タグの access 属性の値です。
displayname
存在する場合には、cffunction タグの displayname 属性の値です。
hint
存在する場合には、cffunction タグの hint 属性の値です。
name
関数名です。
output
存在する場合には、cffunction タグの output 属性の値です。
parameters
関数のパラメータに関するメタデータを含む構造体の配列です。
returntype
存在する場合には、cffunction タグの returntype 属性の値です。
roles
存在する場合には、cffunction タグの output 属性の値です。
userMetadata
cffunction タグ内のユーザー指定の属性です。
パラメータまたはプロパティ
次のフィールドを含む構造体です。
 
default
存在する場合には、cfargument または cfproperty タグの default 属性の 値です。
displayname
存在する場合には、cfargument または cfproperty タグの displayname 属 性の値です。
hint
存在する場合には、cfargument または cfproperty タグの hint 属性の値 です。
name
関数のパラメータまたは CFC プロパティ名です。
required
存在する場合には、cfargument または cfproperty タグの required 属性 の値です。
type
存在する場合には、cfargument または cfproperty タグの type 属性の値 です。
userMetadata
argument タグ内のユーザー指定の属性です。
クエリー
次の要素を含む構造体の配列です。
 
IsCaseSensitive
文字データの大文字と小文字を正しく指定する必要があるかどうかを指定 するブール値です。
Name
列名です。
TypeName
SQL データタイプです。タイプを指定しないで QueryNew でクエリーオ ブジェクトが作成される場合は、省略されます。

メモ: This スコープを使用して、CFC 内のコンポーネントのメタデータにアクセスします。This スコープは、実行時に、コンポーネント本体および CFC メソッドで使用できます。これを使用して、コンポーネントが有効な間に存在する変数の読み込みと書き込みを行います。

詳細については、『ColdFusion MX 開発ガイド』の第10章の「ColdFusion コンポーネントの作成と使用」 の「インストロスペクションによるコンポーネント情報の取得」を参照してください。

 

次の例では、cfdump タグを使用して、ColdFusion コンポーネントブラウザで使用するユーティリティ CFC のメタデータを表示します。cfdocexamples データベースの Employees テーブル内のフィールドの名前とデータタイプも表示します。

<!--- Component Explorer ユーティリティ CFC のインスタンスを作成して 
      そのメタデータを取得 --->
<cfscript>
componentutils = createObject("component", "cfide.componentutils.utils");
utilmetadata = getMetaData(componentutils);
</cfscript>

<h4>CFC コンポーネントユーティリティのメタデータ</h4>
<cfdump var="#utilmetadata#">

<!--- GetMetadata を使用して、cfdocexamples データベースの Employees テーブル内のフィールドの名前と
データタイプを取得 --->
<cfquery name="getemployees" datasource="cfdocexamples">
SELECT      *
FROM         Employees
</cfquery>
<cfset employeemeta=getMetaData(getemployees)>

<h4>Employees テーブル内の列</h4>
<cfloop index="i" from="1" to="#arrayLen(employeemeta)#">
   <cfoutput>
      #employeemeta[i].name# #employeemeta[i].TypeName# 
#employeemeta[i].isCaseSensitive#<br>
   </cfoutput>
</cfloop>
OBJECT  
ColdFusion コンポーネント、ユーザー定義関数、またはクエリーオブジェクトです。
CFC 内で、パラメータを使用して This スコープを指定することもできます。