С помощью API клиента Java можно создавать стратегии.
RAMSession ramSession = getPolicyContext().getRAMSession();
RAMAsset ramAsset = getPolicyContext().getRAMAsset();
Текущий ресурс можно обновить с помощью нескольких классов API Java™ Rational Asset Manager. Например, можно добавить взаимосвязь или задать действие. Кроме того, с помощью классов API можно работать с ресурсами, атрибутами ресурсов и артефактами.
С помощью API Java можно изменять или создавать другие ресурсы помимо ресурса, обрабатываемого стратегией. Для повышения производительности API ram.client рекомендуется ограничить обновления ресурсов одним сеансом.
RAMSession session = getPolicyContext().getRAMSession();
RAMAsset currentAsset = this.getPolicyContext().getRAMAsset();
// Внесение изменений в ресурс с помощью API клиента ...
// При необходимости можно создать или изменить другие ресурсы:
RAMAsset asset = session.createAsset("1.0");
asset.setName("Test Asset");
asset.setCommunity(session.getCommunity("Sample Application Development"));
asset.setAssetType(session.getAssetType("Business Solution"));
asset.setShortDescription("Test asset");
asset.setOwners(new RAMUser[] { session.getUser("admin") });
// Фиксация изменений в хранилище ресурсов для текущего ресурса:
session.putAsset(currentAsset);
// Методы queueAssetForPut и putAssets позволяют добавить в очередь и выполнить
// фиксацию всех ресурсов, измененных в сеансе, в одной транзакции:
session.queueAssetForPut(currentAsset);
// Фиксация изменений всех ресурсов, измененных в сеансе:
session.putAssets(new NullProgressMonitor());
Для API клиента Java см. пакет клиента и пакет общих данных.
Дополнительные примеры приведены в подразделе Пример в этом разделе, а также в разделе Использование Java API Rational Asset Manager.
RAMAsset myAsset = getPolicyContext().getRAMAsset();
AssetAttribute myAttribute = myAsset.getAssetAttribute("Family Name");
String[] myAttrValue = myAttribute.getValues();
myAttribute = myAsset.getAssetAttribute("Work Item");
myAttrValue = myAttribute.getValues();
myAttribute = myAsset.getAssetAttribute("Requirement");
myAttrValue = myAttribute.getValues();
SearchQuery query = session.createAssetQuery(queryParam);
int offset = 0;
int maxResults = 100;
query.setResultsStartIndex(offset);
query.setMaxResults(maxResults);
SearchResult result = session.getAssets(query);
RAMAsset newAsset = session.createAsset("1.0");
newAsset.setName("The new related asset");
newAsset.setCommunity(session.getCommunity("Rational Asset Manager Development"));
newAsset.setAssetType(session.getAssetType("Specification"));
newAsset.setShortDescription("The Specification asset is required.");
AssetID id = new AssetID();
id.setGUID(newAsset.getId());
id.setVersion(newAsset.getVersion());
public Result test() {
try {
// Создание запроса
String queryParam = null;
RAMSession session = getPolicyContext().getRAMSession();
SearchQuery query = session.createAssetQuery(queryParam);
int offset = 0;
int maxResults = 100;
query.setResultsStartIndex(offset);
query.setMaxResults(maxResults);
SearchResult result = session.getAssets(query);
if (result != null && result.getAssetSearchResults() != null) {
AssetSearchResult[] assets = result.getAssetSearchResults();
for (AssetSearchResult asset : assets) {
AssetInformation assetInformation = asset.getAsset();
// Изменение ресурса, например
// создание взаимосвязи "DependsOn" между ресурсами типов Release и Implementation
// и ресурсом типа Specification с тем же именем с помощью API клиента:
// Relationship theRelationships = session.getRelationships
// getRelationships().add(newItem);
}
}
}
// Обработка исключительных ситуаций...
Result result = new Result();
result.setMessage("Success");
return result;
}
// Получение ресурса
RAMAsset ramAsset = getRAMAsset();
// Получение расположение и содержимого артефактов
RAMFolderArtifact srcFolderArtifact = (RAMFolderArtifact)ramAsset.getArtifactsRoot();
Artifact[] srcArtifacts = srcFolderArtifact.computeArtifactsAsFlatList(new NullProgressMonitor());
for (Artifact artifact : srcArtifacts) {
RAMArtifact ramArtifact = (RAMArtifact) artifact;
InputStream is = ramArtifact.downloadContents();
f = File.createTempFile("theArtifact", null, new File(ramSession.getLocalStorageLocation()));
UtilitiesCommon.copyStreams(is, new FileOutputStream(f), null, true, true);
}