ファクトリー・メソッドを使用したインスタンスの取得
以下の Java™ および C# の例に示すように、ファクトリー・メソッド getInstance または fetchInstance を使用して、ObjectStore の既存のインスタンスを取得できます。
getInstance メソッド
getInstance メソッドは、ObjectStore クラスのローカル・インスタンスを作成します。このメソッドでは、要求されたオブジェクトがサーバーに存在するかどうかは検証されず、オブジェクトのローカル参照が返されます。これは、サーバーへのラウンド・トリップを引き起こす関数 (プロパティー値のフェッチまたは refresh メソッドの呼び出しなど) をオブジェクトに対して実行するまでは、サーバー・オブジェクトには関連付けられません。 この手法は「フェッチなしインスタンス化」と呼ばれ、必要なオブジェクトが受動的に機能するに過ぎない場合 (オブジェクト値を取るプロパティーのターゲット値として使用される場合など) に便利です。
Java の例
// オブジェクト・ストアのインスタンスの取得
static void getObjectStoreInstance(
Domain domain,
String objStoreName) // 例: "ObjectStore1"
{
// オブジェクト・ストアの取得 (フェッチなしインスタンス化)
ObjectStore ojbStore = Factory.ObjectStore.getInstance(domain, objStoreName);
// オブジェクト・ストア名の表示
objStore.refresh();
System.out.println("Object store name: " + objStore.get_Name());
}
C# の例
// オブジェクト・ストアのインスタンスの取得
static void GetObjectStoreInstance(
IDomain domain,
String objStoreName) // 例: "ObjectStore1"
{
// オブジェクト・ストアの取得 (フェッチなしインスタンス化)
IObjectStore objStore = Factory.ObjectStore.GetInstance(domain, objStoreName);
// オブジェクト・ストア名の表示
objStore.Refresh();
Debug.WriteLine("Object store name: " + objStore.Name);
}
fetchInstance メソッド
fetchInstance メソッドは、サーバーへのラウンド・トリップを行い、ObjectStore オブジェクトのプロパティー値を取得します。プロパティー・フィルターを使用して、返されるプロパティーの数を制限できます。
Java の例
// オブジェクト・ストアのインスタンスの取得
static void fetchObjectStoreInstance(
Domain domain,
String objStoreName) // 例: "ObjectStore1"
{
// 返されるプロパティーを制限するプロパティー・フィルターの定義
PropertyFilter filter = new PropertyFilter();
filter.addIncludeProperty(0, null, null,
PropertyNames.ROOT_CLASS_DEFINITIONS, null);
filter.addIncludeProperty(0, null, null,
PropertyNames.DISPLAY_NAME, null);
// プロパティー・フィルターを使用してオブジェクト・ストアをフェッチ
ObjectStore objStore = Factory.ObjectStore.fetchInstance(
domain, objStoreName, filter);
// オブジェクト・ストアの表示名を表示
System.out.println("Object store name: " + objStore.get_DisplayName());
}
C# の例
// オブジェクト・ストアのインスタンスの取得
static void FetchObjectStoreInstance(
IDomain domain,
String objStoreName) // 例: "ObjectStore1"
{
// 返されるプロパティーを制限するプロパティー・フィルターの定義
PropertyFilter filter = new PropertyFilter();
filter.AddIncludeProperty(0, null, null,
PropertyNames.ROOT_CLASS_DEFINITIONS, null);
filter.AddIncludeProperty(0, null, null,
PropertyNames.DISPLAY_NAME, null);
// プロパティー・フィルターを使用してオブジェクト・ストアをフェッチ
IObjectStore objStore = Factory.ObjectStore.FetchInstance(
domain, objStoreName, filter);
// オブジェクト・ストアの表示名を表示
Debug.WriteLine("Object store name: " + objStore.DisplayName);
}