パラメーター
説明
ColdFusion サーバー上にデプロイされたオブジェクトに関連するメタデータ(コンポーネントのメソッド、プロパティ、パラメータなど)を取得します。
戻り値
構造化されたメタデータ情報:ColdFusion コンポーネント(CFC)およびユーザー定義関数(UDF)の場合は、構造体。クエリーオブジェクトの場合は、構造体の配列。
カテゴリ
関数のシンタックス
GetMetaData(object)
関連項目
履歴
ColdFusion(2018 リリース)アップデート 5:
- Array.getmetadata() は、新しいキー dimensions.を含んだ構造体を返します。
- 配列のデータ型がコンポーネントの場合、datatype キーはそのコンポーネントの完全修飾パスを生成します。
ColdFusion MX 7:クエリーオブジェクトのメタデータを取得できるようになりました。
ColdFusion MX:この関数が追加されました。
パラメーター
|
説明 |
---|---|
オブジェクト |
ColdFusion コンポーネント、ユーザー定義関数、またはクエリーオブジェクトです。CFC 内では、このパラメータを使用して This スコープを指定することもできます。 |
使用方法
この関数は、アプリケーションデータに関する情報を提供し、オブジェクトの構造体およびその使用方法をアプリケーションでダイナミックに確定できるようにします。この関数は、CFC およびクエリーオブジェクトに役立ちます。CFC のメタデータは、コンポーネントに関する情報、その関数、引数、およびプロパティに関する情報などです。getMetaData 関数は、CFC の一部ではないユーザー定義関数のメタデータも返します。まだインスタンス化していない CFC 定義、または ColdFusion インターフェイスに関する情報を取得するには、GetComponentMetaData 関数を使用します。次の表に、この関数から返されるデータを、サポートされているオブジェクトタイプ別に示します。
オブジェクト | フィールド | 説明 |
---|---|---|
コンポーネント | displayname | cfcomponent タグの displayname 属性の値です(属性が存在する場合)。 |
extends | コンポーネントの祖先コンポーネントのメタデータです。他のコンポーネントを明示的に拡張しないコンポーネントは、WEB-INF.cftags.component を拡張します。 | |
fullname |
cf_webroot(ColdFusion の Web ルート)からコンポーネントまでのドット区切りパスです。 | |
functions |
コンポーネントの関数に関するメタデータ構造体の配列です。 | |
hint |
cfcomponent タグの displayname 属性の値です(属性が存在する場合)。 | |
implements |
コンポーネントが実装するインターフェイスのメタデータを含む構造体です。構造体のキーでインターフェイス名を指定し、値でインターフェイスのメタデータを含む構造体を指定します。 | |
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 | 関数のパラメータに関するメタデータを含む構造体の配列です。 | |
returnformat | リモートの呼び出し元に返される値の形式です。この属性は、ローカルの呼び出し元に返される値の形式には影響しません。 | |
returntype |
cffunction タグの returntype 属性の値です(属性が存在する場合)。 | |
roles | cffunction タグの output 属性の値です(属性が存在する場合)。 | |
userMetadata | cffunction タグに含まれるユーザー指定の属性です。 | |
パラメータまたはプロパティ | default | cfargument または cfproperty タグの default 属性の値です(属性が存在する場合)。 |
displayname | cffunction タグの 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 アプリケーションの開発』のイントロスペクションによるコンポーネント情報の取得を参照してください。
例
次の例では、 cfdump タグを使用して、ColdFusion コンポーネントブラウザで使用するユーティリティ CFC のメタデータを表示しています。また、 cfdocexamples データベースの Employees テーブル内のフィールドの名前とデータ型も表示します。
<!--- 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>