コレクション

いくつかの Rational® CM API メソッドは、リソースのコレクションを戻します。リソース コレクションは、 ResourceList または ResourceList.ResponseIterator として戻されます。

多くのプロパティの値は、リソースへの参照のリストです。そのような プロパティの値は、ResourceList オブジェクトで表されます。これは、 プロキシ オブジェクトのコレクションであり、リストのメンバーに対する特定の操作を 実行するための多数の追加メソッドがあります。プロパティの値が ResourceList である場合、NestedPropertyNames オブジェクトを使用して、リスト内の各リソースのプロパティを要求できます。 同じプロパティ セットが、各リソースから要求されることになります。

ResourceList は、リスト中のメンバーに対する特定の操作を実行する ための多数のメソッドを提供します。ResourceList は、 任意の Resource サブクラスのプロキシを含むことができます。1 つのコレクション内のすべてのプロキシは、 リストの生成プログラムによって、同じプロキシ クラスである場合も、 異なるクラスの場合もあります。新しい ResourceListProvider.resourceList() メソッド によって作成されます。ResourceList は、それを収容するためのリソース プロキシのタイプと共にパラメータ化することができます。

ResponseIterator は、プロキシ情報のストリームを表します。 この情報は、クライアントが ResponseIterator の項目を移動していくのに従って、 一度に 1 つのプロキシずつ、サーバーから取得されます。ResponseIterator は、 (ResourceList.ResponseIterator().release() を使用して) 明示的に解放されるか、 または最後に到達するまで、サーバーとの通信チャネルをオープンしたまま保持 します。最良のパフォーマンスを得るため、クライアントは、 イテレータ内の項目をできるだけ速く検査し、必要でなくなったらすみやかに イテレータを解放するべきです。

例えば、CqProvider.doGetDbSetList() メソッドを使用して、使用可能なデータベース セットを検索するには、次のようにします。
        try {
            StpProvider provider = getProvider();
            
            // Request a list of the CQ databases known to the provider
            ResourceList<CqDbSet> databases = 
                (provider).cqProvider().doGetDbSetList(DB_SET_PROPS);
            
            // List the returned information
            for (CqDbSet dbSet : databases) {
                System.out.println (dbSet.getDisplayName() 
                                    + ": " + dbSet.getLocalReplica());
            }
        } catch(Throwable ex) {
            ex.printStackTrace();
        } finally {
            System.exit(0);
        }

詳しくは、Rational CM API についての Javadoc 情報を参照してください。


フィードバック