Jede Ressource hat eine Position, die die Ressource eindeutig gegenüber dem Server identifiziert. Das StpLocation-Objekt der Rational CM API stellt die Position einer Ressource dar und ist für die Konstruktion eines Proxys für die Ressource erforderlich. Ein StpLocation-Objekt konstruiert der Provider aus einer Zeichenfolgendarstellung der Position. Die Syntax für die Anzeige von Ressourcenpositionen in dieser Zeichenfolgendarstellung ist von der Rational CM API in den Javadoc-Informationen zu StpLocation definiert. Das Zeichenfolgenargument für die Operationen Provider.location(...), StpProvider.stpLocation(...) und StpPovider.buildProxy(...) muss der in StpLocation angegebenen Syntax entsprechen. Die CM-API-Positionszeichenfolgensyntax ist eine Erweiterung der ClearCase-Objektselektorsyntax.
Die Positionszeichenfolge für eine Datei- oder Verzeichnisressource auf einer Clientmaschine ist beispielsweise der Name des Dateipfads. Dieses Format wird im folgenden Codefragment zum Auschecken einer Datei mit dem Namen sample_file.txt verwendet.
// Mit einem gegebenen CcProvider-Objekt m_provider, das zunächst instanziiert werden muss, // soll ein Location-Objekt für den eindeutigen Pfadnamen einer Datei erstellt werden. // Verwenden Sie "C:\\sample_view\\sample_dir\\sample_file.txt" unter Windows oder // "/sample_view/sample_dir/sample_file.txt" unter UNIX. StpLocation fileLoc = m_provider.stpLocation("C:\\sample_view\\sample_dir\\sample_file.txt"); // Erstellen Sie den ControllableResource-Proxy für den Client. Eine versionsgesteuerte // Datei ist eine ControllableResource. CcControllableResource my_ctresource = m_provider.ccControllableResource(fileLoc); // Verwenden Sie den Proxy zum Arbeiten mit der steuerbaren Ressource. // Checken Sie beispielsweise die Datei aus: my_ctresource.doCheckout();
Dieses Beispiel zeigt, dass die Methode provider.stpLocation() ein StpLocation-Objekt zurückgibt, das einer Positionsangabe entspricht. Das StpLocation-Objekt (fileLoc) wird dann an Provider.ccControllableResource() übergeben, um für die Ressource an dieser Position einen Proxy zu konstruieren.
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);
Das Interface StpLocation stellt auch Methoden für die Syntaxanalyse und die Erstellung von Zeichenfolgen mit Positionsangaben bereit.
In jedem Proxy, der die Position eines Objekts referenziert, ist ein StpLocation-Objekt für die Position dieses Objekts verfügbar. StpLocation wurde um den Provider erweitert, von dem ein StpLocation-Objekt stammt. Weitere Informationen zu StpLocation-Objekten und zur Syntax von Positionsangeben enthält der Artikel Positionssyntax. Zusätzliche Beispiele für die Verwendung einer Positionszeichenfolge und die Festlegung von Eigenschaften finden Sie im Abschnitt Eigenschaften schreiben.