@Override public void addDetail(long resourceId, String key, String value, boolean display) { super.addDetail(new StoragePoolDetailVO(resourceId, key, value, display)); } }
@Override public void updateDetails(long poolId, Map<String, String> details) { if (details != null) { List<StoragePoolDetailVO> detailsVO = new ArrayList<StoragePoolDetailVO>(); for (String key : details.keySet()) { detailsVO.add(new StoragePoolDetailVO(poolId, key, details.get(key), true)); } _detailsDao.saveDetails(detailsVO); if (details.size() == 0) { _detailsDao.removeDetails(poolId); } } }
@Override @DB public StoragePoolVO persist(StoragePoolVO pool, Map<String, String> details, List<String> tags) { TransactionLegacy txn = TransactionLegacy.currentTxn(); txn.start(); pool = super.persist(pool); if (details != null) { for (Map.Entry<String, String> detail : details.entrySet()) { StoragePoolDetailVO vo = new StoragePoolDetailVO(pool.getId(), detail.getKey(), detail.getValue(), true); _detailsDao.persist(vo); } } if (CollectionUtils.isNotEmpty(tags)) { _tagsDao.persist(pool.getId(), tags); } txn.commit(); return pool; }