@Override public ResponseEntity<List<MgmtSoftwareModuleMetadata>> createMetadata( @PathVariable("softwareModuleId") final Long softwareModuleId, @RequestBody final List<MgmtSoftwareModuleMetadata> metadataRest) { final List<SoftwareModuleMetadata> created = softwareModuleManagement.createMetaData( MgmtSoftwareModuleMapper.fromRequestSwMetadata(entityFactory, softwareModuleId, metadataRest)); return ResponseEntity.status(HttpStatus.CREATED).body(MgmtSoftwareModuleMapper.toResponseSwMetadata(created)); }
@Override public ResponseEntity<List<MgmtSoftwareModule>> createSoftwareModules( @RequestBody final List<MgmtSoftwareModuleRequestBodyPost> softwareModules) { LOG.debug("creating {} softwareModules", softwareModules.size()); final Collection<SoftwareModule> createdSoftwareModules = softwareModuleManagement .create(MgmtSoftwareModuleMapper.smFromRequest(entityFactory, softwareModules)); LOG.debug("{} softwareModules created, return status {}", softwareModules.size(), HttpStatus.CREATED); return ResponseEntity.status(HttpStatus.CREATED) .body(MgmtSoftwareModuleMapper.toResponse(createdSoftwareModules)); }
@Override protected Optional<SoftwareModule> findEntityByTableValue(final Long lastSelectedId) { return softwareModuleManagement.get(lastSelectedId); }
@Override public int size() { long size; if (type == null && StringUtils.isEmpty(searchText)) { size = getSoftwareModuleManagement().count(); } else { size = getSoftwareModuleManagement().countByTextAndType(searchText, type); } if (size > Integer.MAX_VALUE) { size = Integer.MAX_VALUE; } return (int) size; }
@Override protected List<ProxyBaseSoftwareModuleItem> loadBeans(final int startIndex, final int count) { final Slice<SoftwareModule> swModuleBeans; if (type == null && StringUtils.isEmpty(searchText)) { swModuleBeans = getSoftwareManagementService().findAll(new OffsetBasedPageRequest(startIndex, count, sort)); } else { swModuleBeans = getSoftwareManagementService() .findByTextAndType(new OffsetBasedPageRequest(startIndex, count, sort), searchText, type); } return swModuleBeans.getContent().stream().map(this::getProxyBean).collect(Collectors.toList()); }
@Override public ResponseEntity<MgmtSoftwareModule> updateSoftwareModule( @PathVariable("softwareModuleId") final Long softwareModuleId, @RequestBody final MgmtSoftwareModuleRequestBodyPut restSoftwareModule) { final SoftwareModule module = softwareModuleManagement .update(entityFactory.softwareModule().update(softwareModuleId) .description(restSoftwareModule.getDescription()).vendor(restSoftwareModule.getVendor())); final MgmtSoftwareModule response = MgmtSoftwareModuleMapper.toResponse(module); MgmtSoftwareModuleMapper.addLinks(module, response); return ResponseEntity.ok(response); }
@Override public ResponseEntity<PagedList<MgmtSoftwareModule>> getSoftwareModules( @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SEARCH, required = false) final String rsqlParam) { final int sanitizedOffsetParam = PagingUtility.sanitizeOffsetParam(pagingOffsetParam); final int sanitizedLimitParam = PagingUtility.sanitizePageLimitParam(pagingLimitParam); final Sort sorting = PagingUtility.sanitizeSoftwareModuleSortParam(sortParam); final Pageable pageable = new OffsetBasedPageRequest(sanitizedOffsetParam, sanitizedLimitParam, sorting); final Slice<SoftwareModule> findModulesAll; long countModulesAll; if (rsqlParam != null) { findModulesAll = softwareModuleManagement.findByRsql(pageable, rsqlParam); countModulesAll = ((Page<SoftwareModule>) findModulesAll).getTotalElements(); } else { findModulesAll = softwareModuleManagement.findAll(pageable); countModulesAll = softwareModuleManagement.count(); } final List<MgmtSoftwareModule> rest = MgmtSoftwareModuleMapper.toResponse(findModulesAll.getContent()); return ResponseEntity.ok(new PagedList<>(rest, countModulesAll)); }
@Override public ResponseEntity<Void> deleteSoftwareModule(@PathVariable("softwareModuleId") final Long softwareModuleId) { final SoftwareModule module = findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, null); softwareModuleManagement.delete(module.getId()); return ResponseEntity.ok().build(); }
@Override public ResponseEntity<PagedList<MgmtSoftwareModuleMetadata>> getMetadata( @PathVariable("softwareModuleId") final Long softwareModuleId, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_OFFSET, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_OFFSET) final int pagingOffsetParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_PAGING_LIMIT, defaultValue = MgmtRestConstants.REQUEST_PARAMETER_PAGING_DEFAULT_LIMIT) final int pagingLimitParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SORTING, required = false) final String sortParam, @RequestParam(value = MgmtRestConstants.REQUEST_PARAMETER_SEARCH, required = false) final String rsqlParam) { // check if software module exists otherwise throw exception immediately findSoftwareModuleWithExceptionIfNotFound(softwareModuleId, null); final int sanitizedOffsetParam = PagingUtility.sanitizeOffsetParam(pagingOffsetParam); final int sanitizedLimitParam = PagingUtility.sanitizePageLimitParam(pagingLimitParam); final Sort sorting = PagingUtility.sanitizeSoftwareModuleMetadataSortParam(sortParam); final Pageable pageable = new OffsetBasedPageRequest(sanitizedOffsetParam, sanitizedLimitParam, sorting); final Page<SoftwareModuleMetadata> metaDataPage; if (rsqlParam != null) { metaDataPage = softwareModuleManagement.findMetaDataByRsql(pageable, softwareModuleId, rsqlParam); } else { metaDataPage = softwareModuleManagement.findMetaDataBySoftwareModuleId(pageable, softwareModuleId); } return ResponseEntity .ok(new PagedList<>(MgmtSoftwareModuleMapper.toResponseSwMetadata(metaDataPage.getContent()), metaDataPage.getTotalElements())); }
@Override protected List<SoftwareModuleMetadata> getMetadataList() { return Collections.unmodifiableList(softwareModuleManagement .findMetaDataBySoftwareModuleId(PageRequest.of(0, MAX_METADATA_QUERY), getSelectedEntity().getId()) .getContent()); }
@Override protected boolean checkForDuplicate(final SoftwareModule entity, final String value) { return softwareModuleManagement.getMetaDataBySoftwareModuleId(entity.getId(), value).isPresent(); }
@Override public ResponseEntity<Void> deleteMetadata(@PathVariable("softwareModuleId") final Long softwareModuleId, @PathVariable("metadataKey") final String metadataKey) { softwareModuleManagement.deleteMetaData(softwareModuleId, metadataKey); return ResponseEntity.ok().build(); }
/** * Creates {@link DistributionSet}s in repository including three * {@link SoftwareModule}s of types {@link #SM_TYPE_OS}, {@link #SM_TYPE_RT} * , {@link #SM_TYPE_APP} with {@link #DEFAULT_VERSION} followed by an * iterative number and {@link DistributionSet#isRequiredMigrationStep()} * <code>false</code>. * * In addition it updates the created {@link DistributionSet}s and * {@link SoftwareModule}s to ensure that * {@link BaseEntity#getLastModifiedAt()} and * {@link BaseEntity#getLastModifiedBy()} is filled. * * @return persisted {@link DistributionSet}. */ public DistributionSet createUpdatedDistributionSet() { DistributionSet set = createDistributionSet(""); set = distributionSetManagement.update( entityFactory.distributionSet().update(set.getId()).description("Updated " + DEFAULT_DESCRIPTION)); set.getModules().forEach(module -> softwareModuleManagement.update( entityFactory.softwareModule().update(module.getId()).description("Updated " + DEFAULT_DESCRIPTION))); // load also lazy stuff return distributionSetManagement.getWithDetails(set.getId()).get(); }
@Override public int size() { long size; if (type == null && StringUtils.isEmpty(searchText)) { size = getSoftwareModuleManagement().count(); } else { size = getSoftwareModuleManagement().countByTextAndType(searchText, type); } if (size > Integer.MAX_VALUE) { size = Integer.MAX_VALUE; } return (int) size; }
@Override protected void handleOkDelete(final List<Long> entitiesToDelete) { softwareModuleManagement.delete(entitiesToDelete); getEventBus().publish(this, new SoftwareModuleEvent(BaseEntityEventType.REMOVE_ENTITY, entitiesToDelete)); getNotification().displaySuccess(getI18n().getMessage("message.delete.success", entitiesToDelete.size() + " " + getI18n().getMessage("caption.software.module") + "(s)")); manageDistUIState.getSelectedSoftwareModules().clear(); }
@Override protected List<ProxyBaseSoftwareModuleItem> loadBeans(final int startIndex, final int count) { final Slice<SoftwareModule> swModuleBeans; if (type == null && StringUtils.isEmpty(searchText)) { swModuleBeans = getSoftwareManagementService().findAll(new OffsetBasedPageRequest(startIndex, count, sort)); } else { swModuleBeans = getSoftwareManagementService() .findByTextAndType(new OffsetBasedPageRequest(startIndex, count, sort), searchText, type); } return swModuleBeans.getContent().stream().map(this::getProxyBean).collect(Collectors.toList()); }
@Override protected List<SoftwareModuleMetadata> getMetadataList() { return Collections.unmodifiableList(softwareModuleManagement .findMetaDataBySoftwareModuleId(new PageRequest(0, MAX_METADATA_QUERY), getSelectedEntity().getId()) .getContent()); }
@Override protected boolean checkForDuplicate(final SoftwareModule entity, final String value) { return softwareModuleManagement.getMetaDataBySoftwareModuleId(entity.getId(), value).isPresent(); }
@Override protected void deleteMetadata(final SoftwareModule entity, final String key) { softwareModuleManagement.deleteMetaData(entity.getId(), key); }
@Override protected Optional<SoftwareModule> findEntityByTableValue(final Long entityTableId) { return softwareModuleManagement.get(entityTableId); }