各リソースはそれぞれ 1 つの ロケーションを持っていて、特定の時点のリソースがそのロケーションによって一意的に識別されます。 ファイル ベースのリソースの場合、ロケーションはファイル パス名で表されます。 サーバー サイド リソースの場合、ロケーションは、オブジェクトを検出するのに 必要な情報を含みます (たとえば、VOB 内のデータベース ID)。
リソースのロケーションは、リソース内容の読み取り/書き込みを行うとき、 または、サーバー上でプロパティの読み取り/書き込みを行うときに必要です。
StpLocation オブジェクトは、リソース アドレスを表し、 リソース プロキシを (プロバイダのリソース プロキシ ファクトリ メソッドの 1 つを 使用することによって) 作成するために使用できます。一般的な規則として、Location から 作成される Resource プロキシは、その Location によってアドレス指定されるリソースと同じタイプ でなければなりません。ただし、Location によってアドレス指定されるリソースの タイプは、常にそのアドレス指定だけで決定できるとは限りません。そのため、 プロキシが作成される時点で常にこの規則に従うことはできません。
すべてのリソースは、クライアント セッションとクライアント セッションとの間にクライアント上でリソース識別情報を保管するのに使用できる、 安定した形式のロケーションを持っています。この安定ロケーションは、 リソースの作成に使用されるロケーションではない可能性があります。サーバーは、 リソース作成時にユーザーのためにこの安定ロケーションを作成します。この ロケーションは、当該リソースの 1 つの不変のプロパティとして常に使用可能です。StpLocation オブジェクト は、ロケーションの文字列表記を取得するためのメソッドと、 文字列をロケーションに戻す解析メソッドを提供します。
StpLocation インスタンスは、解析されていくつかのコンポーネント フィールドに分解されたロケーション指定を 表します。多数の異なるフォーマットまたはスキーマが、さまざまなリソースのロケーションを文字列として表現する ために使用されます。これらのスキーマは、ドメイン、リポジトリ名、ネーム スペース、 オブジェクト名 のうち 1 つ以上の フィールドから構成されます。ネーム スペース フィールドによって、どのスキーマが使用されているのかを判別できます。
StpLocation インターフェイスでは、ロケーション指定を解析して、そのロケーションを構成要素に 分解するためのメソッドが提供されています。使用可能なメソッドを使用して、 Rational® CM API クライアントは、ユーザーから提供されたロケーション指定を検査し、使用されているコンテキストでそれらの指定が適切であるかどうかを判別できます。 この解析に 基づいて、クライアントは、ロケーション指定の構成要素のうちユーザーが省略した要素 を (そのような欠落要素がコンテキストで明確に定義されていれば) 補うことができます。
このプロセスには StpProvider.stpLocation() メソッドが役立ちます。 このメソッドは、欠落しているロケーション文字列スキーマを Namespace パラメータ から充てんし、欠落しているリポジトリを、クライアントによってプロバイダのものと指定された デフォルトのリポジトリから充てんします (Javadoc 情報の StpProvider.setDefaultRepository メソッド を参照してください)。
<domain>.<namespace>:<object-name>@<repository-name>デフォルトのドメインが暗黙指定されるようにすると、次の例のようになります。
"stream:mystream@projects"
StpProvider インターフェイスには、userFriendlySelector メソッドと stableSelector メソッド での USER_FRIENDLY_LOCATION と STABLE_LOCATION のようなフォーマットで StpLocation を構築するためのメソッドが組み込まれています。 StpResource インターフェイスには、プロキシによって定義された STABLE_LOCATION プロパティ と USER_FRIENDLY_LOCATION プロパティの値を戻す、getStableLocation メソッドと getUserFriendlyLocation メソッド が組み込まれています。 クライアントが、特定のフォーマットでロケーションを必要とする場合は、そのフォーマットに対応するリソース プロパティを要求し、 StpLocation.stpLocation() は使用すべきではありません。