各リソースには、サーバーに対してそれを固有に識別するロケーションがあります。 Rational® CM API StpLocation オブジェクトは、リソースのロケーションを示すものであり、そのリソースのプロキシを作成するために必要です。 StpLocation オブジェクトは、Provider によって、ロケーションの文字列表現から構成されます。 この文字列表現でリソース ロケーションを指定するための構文は、 Rational CM API によって、StpLocation の Javadoc 情報内に定義されます。 Provider.location(...)、StpProvider.stpLocation(...)、および StpPovider.buildProxy(...) 操作に対する文字列引数は、StpLocation に指定されている構文に準拠しなければなりません。CM API ロケーション文字列の構文は、 ClearCase® オブジェクト セレクタ構文の拡張です。
たとえば、クライアント マシン上のリソース ファイルまたはディレクトリのロケーションを 表す文字列は、ファイル パス名です。次のコード フラグメントでは、この形式を 使用して、sample_file.txt という名前のファイルをチェックアウトします。
// Given a CcProvider object, m_provider, which must first be instantiated, // create a Location object from a unique file pathname. // Use "C:\\sample_view\\sample_dir\\sample_file.txt" on Windows, // or "/sample_view/sample_dir/sample_file.txt" on UNIX. StpLocation fileLoc = m_provider.stpLocation("C:\\sample_view\\sample_dir\\sample_file.txt"); // Create the ControllableResource proxy for the client - a versioned file // is a ControllableResource CcControllableResource my_ctresource = m_provider.ccControllableResource(fileLoc); // Use the proxy to work with the controllable resource. // For example, check out the file: my_ctresource.doCheckout();
この例が示すとおり、provider.stpLocation() メソッドは、ロケーション指定に対応した StpLocation オブジェクトを返します。 続いて、StpLocation オブジェクト (fileLoc) は、Provider.ccControllableResource() に渡され、そのロケーションにあるリソースのプロキシが作成されます。
StpLocation activityLoc = provider.stpLocation("cc.activity:my_fix_a_bug@/vobs/projects"); CcActivity act = provider.ccProvider().ccActivity(activityLoc);
StpLocation loc = provider.stpLocation("cq.record:Defect/SAMPL00000234@2003.06.00/SAMPL"); CqRecord record = provider.cqProvider().cqRecord(loc);
StpLocation インターフェイスには、ロケーション指定が入った文字列を 構文解析したり、合成するためのメソッドもあります。
StpLocation オブジェクトは、各プロキシから使用でき、そのプロキシが参照している オブジェクトのロケーションに対応します。StpLocation は、StpLocation オブジェクトの発生元の Provider を提供するように拡張されます。StpLocation オブジェクトとロケーション指定構文の 詳細については、ロケーションの構文を参照してください。ロケーション文字列の使用とプロパティ設定に関するその他の例は、 プロパティの書き込み を参照してください。