Vorhandenes Asset abrufen

Um ein Asset vom Server abzurufen, benötigen Sie zunächst ein Objekt com.ibm.ram.client.RAMAsset. Dieses Objekt stellt die Metadaten eines Assets dar. Für dieses Objekt können Sie mithilfe der Methode getContents() die Assets als RAS-Datei abrufen.

Es gibt verschiedene Möglichkeiten, um ein Asset vom Server abzurufen. Um das Asset direkt abzurufen, verwenden Sie RAMSession.getAsset(AssetIdentification), um das Asset nach GUID und Version abzurufen. Sie können den Platzhalter '*' verwenden, um die neueste Version abzurufen, die mit einem Muster übereinstimmt (siehe Asset versionieren).
                // Ein Asset nach GUID und Version abrufen (ruft nur die Metadaten des Assets ab)
                RAMAsset asset = session.getAsset(new AssetIdentification("{AC0D54C1-E349-69EC-030F-E51CB557B0D7}", "7.1"));
Sobald Sie ein Asset abgerufen haben, können Sie über die getter- und setter-Methoden Eigenschaften abrufen bzw. definieren. Beispiel:
                // Metadaten des Assets überprüfen
                assertEquals("RAM Client API Javadoc", asset.getName());
                assertEquals("Javadoc for the Rational Asset Manager Client API", asset.getDescription());
                assertEquals("Documentation", asset.getAssetType().getName());
                assertEquals("RAM Development", asset.getCommunity().getName());
                assertEquals("Kevin Jones", asset.getOwners()[0].getName());
Um das Asset als RAS-Datei herunterzuladen, verwenden Sie die Methode getContents():
                // Inhalt als .ras-Datei herunterladen
                ZipInputStream in = null;
                File file = null;
                FileOutputStream output = null;
                byte[] buffer = new byte[100000];
                try {
                        file = new File("D:\\temp\\newAsset.ras"); //$NON-NLS-1$
                        output = new FileOutputStream(file);
                        in = new ZipInputStream(asset.getContents());

                        int read;
                        int start = 0;
                        while ((read = in.read(buffer, start, buffer.length - start)) > -1) {
                                start += read;
                                if (start >= buffer.length) {
                                        output.write(buffer);
                                        start = 0;
                                }
                        }
                        if (start > 0)
                                output.write(buffer, 0, start);
                } finally {
                        try {
                                if (in != null)
                                        in.close();
                        } catch (IOException e) {
                        }
                        try {
                                if (output != null)
                                        output.close();
                        } catch (IOException e) {
                        }
                }

Feedback