Ciascuna risorsa ha un'ubicazione che la identifica univocamente nel server. L'oggetto StpLocation Rational CM API rappresenta l'ubicazione di una risorsa ed è richiesto per creare un proxy perla risorsa. Un oggetto StpLocation viene generato dal provider da una rappresentazione di stringa dell'ubicazione. La sintassi per specificare le ubicazioni delle risorse in questa rappresentazione di stringa è definita da Rational CM API nelle informazioni Javadoc per StpLocation. L'argomento stringa per le operazioni Provider.location(...), StpProvider.stpLocation(...) e StpPovider.buildProxy(...) deve essere conforme alla sintassi specificata in StpLocation. La sintassi della stringa di ubicazione CM API è un'estensione della sintassi del selettore oggetto ClearCase.
Ad esempio, la stringa di ubicazione di un file risorsa o directory su una macchina client è il nome percorso file. Questo formato viene utilizzato nel frammento di codice riportato di seguito per eseguire il checkout di un file denominato sample_file.txt.
// Fornire un oggetto CcProvider, m_provider, di cui deve essere creata un'istanza, // creare un oggetto Ubicazione da un nome percorso file univoco. // Utilizzare "C:\\sample_view\\sample_dir\\sample_file.txt" su Windows, // o "/sample_view/sample_dir/sample_file.txt" su UNIX. StpLocation fileLoc = m_provider.stpLocation("C:\\sample_view\\sample_dir\\sample_file.txt"); // Creare il proxy ControllableResource per il client - un file con versione // è un ControllableResource CcControllableResource my_ctresource = m_provider.ccControllableResource(fileLoc); // Utilizzare il proxy per gestire la risorsa controllabile. // Ad esempio, eseguire il checkout del file: my_ctresource.doCheckout();
Come viene descritto in questo esempio, il metodo provider.stpLocation() restituisce un oggetto StpLocation che corrisponde ad una specifica di ubicazione. L'oggetto StpLocation (fileLoc) viene successivamente trasmesso a Provider.ccControllableResource() per creare un proxy per la risorsa a quella ubicazione.
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);
L'interfaccia StpLocation fornisce inoltre i metodi per analizzare e comporre stringhe che contengono le specifiche di ubicazione.
Un oggetto StpLocation è disponibile da ogni proxy, che corrisponde all'ubicazione dell'oggetto a cui quel proxy fa riferimento. StpLocation viene estesa per fornire il provider da cui ha avuto origine un oggetto StpLocation. Per ulteriori informazioni sugli oggetti StpLocation e la sintassi di specifica di ubicazione, vedere Sintassi ubicazione. Per ulteriori esempi sull'utilizzo di una stringa di ubicazione e sull'impostazione delle proprietà, consultare Scrittura di proprietà.