Die CM API unterscheidet zwischen einer CcFile, bei der es sich um die Datei in einer Sicht handelt, über die die obigen Operationen ausgeführt werden, und dem zugrunde liegenden ClearCase-Element sowie der zugrunde liegenden ClearCase-Version (CcElement und CcVersion), denen sie zugeordnet ist.
Die Methode CcFile.doVersionControl() erstellt eine CcElement-Ressource und eine erste CcVersion-Ressource, die denselben Inhalt wie die CcFile hat.
// Abrufen des ClearCase-Providers CcProvider provider = ...; // Erstellen eines CcFile-Proxys für die auszucheckende Datei. // Zunächst wird aus dem Pfad der Datei eine einfache File-Instanz erstellt. // Anschließend wird aus dieser Datei eine StpLocation-Instanz erstellt. // Zum Schluss wird aus der Position ein CcFile-Proxy erstellt. File file = new File("C:/my_views/example_view/avob/example.txt"); StpLocation fileLoc = provider.filePathLocation(Domain.CLEAR_CASE, file); CcFile testFile = provider.ccFile(fileLoc); // Erstellen einer Anforderung für die interessierenden Eigenschaften der // Datei und Lesen dieser Eigenschaften. Beachten Sie, dass die resultierenden // Eigenschaftswerte *nur* in dem von doReadProperties() zurückgegebenen CcFile-Proxy, // nicht jedoch im ursprünglichen Proxy verfügbar sind. PropertyRequest wantedProps = new PropertyRequest( CcFile.IS_VERSION_CONTROLLED, CcFile.IS_CHECKED_OUT); testFile = (CcFile) testFile.doReadProperties(wantedProps); if ( ! testFile.getIsVersionControlled()) { // Die Datei muss der Versionssteuerung unterstellt werden. // Gleichzeitig werden erneut die interessierenden Eigenschaften gelesen. testFile = (CcFile) testFile.doVersionControl(wantedProps); } if ( ! testFile.getIsCheckedOut()) { // Die Datei muss ausgecheckt werden. // Gleichzeitig werden erneut die interessierenden Eigenschaften gelesen. testFile = testFile.doCcCheckout(null, wantedProps); } // Prüfung, ob die Datei jetzt der Versionssteuerung unterstellt und ausgecheckt ist assert(testFile.getIsVersionControlled() == true); assert(testFile.getIsCheckedOut() == true);
Bestimmte Operationen für Ressourcen in einer lokalen Websicht können mit einem Server interagieren. Beispiel:
Das Resource-Interface selbst bietet keine Methode für die Erstellung der zugrunde liegenden Ressource an, da einige Ressourcen nicht vom Benutzer erstellt werden können. Es ist wichtig, zwischen der Erstellung des Proxys und der Erstellung der Ressource zu unterscheiden. Für die Erstellung des Proxys wird ein Resource-Objekt instanziiert, und für die Erstellung der Ressource muss die Methode doCreateResource() oder doCreateVersionControlledResource() aufgerufen werden.