GetMetaData

説明

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>

 Adobe

ヘルプをすばやく簡単に入手

新規ユーザーの場合

Adobe MAX 2024

Adobe MAX

The Creativity Conference

10 月 14 日~ 16 日 マイアミビーチおよびオンライン

Adobe MAX 2024

Adobe MAX

The Creativity Conference

10 月 14 日~ 16 日 マイアミビーチおよびオンライン