每一個資源都有一個位置可以向伺服器表達自己的唯一身分。Rational® CM API StpLocation 物件代表資源的位置,也是建構資源的虛擬物件時所需的物件。StpLocation 物件是由「提供者」從位置的字串表示法來建構。在這個字串表示法中指定資源位置的語法,是由 StpLocation 之 Javadoc 資訊中的 Rational CM API 所定義。Provider.location(...)、StpProvider.stpLocation(...) 及 StpPovider.buildProxy(...) 作業的字串引數,必須符合 StpLocation 中指定的語法。CM API 位置字串語法是 ClearCase® 物件選取器語法的延伸規格。
例如,用戶端機器中資源檔或目錄的位置字串是檔案路徑名稱。這個格式用於下列程式碼片段,以移出名稱為 sample_file.txt 的檔案。
// 給定 CcProvider 物件 m_provider(其必須先建立實例), // 從唯一的檔案路徑名稱建立「位置」物件。 // 在 Windows 使用 "C:\\sample_view\\sample_dir\\sample_file.txt",// 或是在 UNIX 使用 "/sample_view/sample_dir/sample_file.txt"。 StpLocation fileLoc = m_provider.stpLocation("C:\\sample_view\\sample_dir\\sample_file.txt"); // 為用戶端建立 ControllableResource 虛擬物件 - 版本化檔案 // 為 ControllableResource CcControllableResource my_ctresource = m_provider.ccControllableResource(fileLoc); // 利用虛擬物件來使用可控制的資源。 // 例如,移出檔案: 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 物件的「提供者」。如需 StpLocation 物件和位置規格語法的相關資訊,請參閱位置語法。關於使用位置字串及設定內容的其他範例,請參閱寫入內容。