/** * Creates and persists a new business object definition tag entity from the business object definition and the tag entities. * * @param businessObjectDefinitionEntity the business object definition entity * @param tagEntity the tag entity * * @return the newly created business object definition tag entity */ private BusinessObjectDefinitionTagEntity createBusinessObjectDefinitionTagEntity(BusinessObjectDefinitionEntity businessObjectDefinitionEntity, TagEntity tagEntity) { BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = new BusinessObjectDefinitionTagEntity(); businessObjectDefinitionTagEntity.setBusinessObjectDefinition(businessObjectDefinitionEntity); businessObjectDefinitionTagEntity.setTag(tagEntity); return businessObjectDefinitionTagDao.saveAndRefresh(businessObjectDefinitionTagEntity); }
/** * Creates a business object definition tag from the persisted entity. * * @param businessObjectDefinitionTagEntity the business object definition tag entity * * @return the business object definition tag */ private BusinessObjectDefinitionTag createBusinessObjectDefinitionTagFromEntity(BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity) { return new BusinessObjectDefinitionTag(businessObjectDefinitionTagEntity.getId(), getBusinessObjectDefinitionTagKey(businessObjectDefinitionTagEntity)); }
/** * Creates a business object definition tag key from the entity. * * @param businessObjectDefinitionTagEntity the business object definition entity * * @return the business object definition tag key */ private BusinessObjectDefinitionTagKey getBusinessObjectDefinitionTagKey(BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity) { return new BusinessObjectDefinitionTagKey( new BusinessObjectDefinitionKey(businessObjectDefinitionTagEntity.getBusinessObjectDefinition().getNamespace().getCode(), businessObjectDefinitionTagEntity.getBusinessObjectDefinition().getName()), new TagKey(businessObjectDefinitionTagEntity.getTag().getTagType().getCode(), businessObjectDefinitionTagEntity.getTag().getTagCode())); }
/** * Processes the tags search score multiplier. Multiply all the tags search score. * * @param businessObjectDefinitionEntity the business object definition entity */ public void processTagSearchScoreMultiplier(final BusinessObjectDefinitionEntity businessObjectDefinitionEntity) { LOGGER.debug("processTagSearchScoreMultiplier " + businessObjectDefinitionEntity.getId() + " " + businessObjectDefinitionEntity.getBusinessObjectDefinitionTags()); BigDecimal totalSearchScoreMultiplier = businessObjectDefinitionEntity.getBusinessObjectDefinitionTags().stream().filter(item -> item.getTag().getSearchScoreMultiplier() != null) .reduce(BigDecimal.ONE, (bd, item) -> bd.multiply(item.getTag().getSearchScoreMultiplier()), BigDecimal::multiply) .setScale(3, RoundingMode.HALF_UP); businessObjectDefinitionEntity.setTagSearchScoreMultiplier(totalSearchScoreMultiplier); } }
/** * Processes the tags search score multiplier. Multiply all the tags search score. * * @param businessObjectDefinitionEntity the business object definition entity */ public void processTagSearchScoreMultiplier(final BusinessObjectDefinitionEntity businessObjectDefinitionEntity) { LOGGER.debug("processTagSearchScoreMultiplier " + businessObjectDefinitionEntity.getId() + " " + businessObjectDefinitionEntity.getBusinessObjectDefinitionTags()); BigDecimal totalSearchScoreMultiplier = businessObjectDefinitionEntity.getBusinessObjectDefinitionTags().stream().filter(item -> item.getTag().getSearchScoreMultiplier() != null) .reduce(BigDecimal.ONE, (bd, item) -> bd.multiply(item.getTag().getSearchScoreMultiplier()), BigDecimal::multiply) .setScale(3, RoundingMode.HALF_UP); businessObjectDefinitionEntity.setTagSearchScoreMultiplier(totalSearchScoreMultiplier); } }
/** * Creates and persists a new business object definition tag entity from the business object definition and the tag entities. * * @param businessObjectDefinitionEntity the business object definition entity * @param tagEntity the tag entity * * @return the newly created business object definition tag entity */ private BusinessObjectDefinitionTagEntity createBusinessObjectDefinitionTagEntity(BusinessObjectDefinitionEntity businessObjectDefinitionEntity, TagEntity tagEntity) { BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = new BusinessObjectDefinitionTagEntity(); businessObjectDefinitionTagEntity.setBusinessObjectDefinition(businessObjectDefinitionEntity); businessObjectDefinitionTagEntity.setTag(tagEntity); return businessObjectDefinitionTagDao.saveAndRefresh(businessObjectDefinitionTagEntity); }
/** * Creates a business object definition tag from the persisted entity. * * @param businessObjectDefinitionTagEntity the business object definition tag entity * * @return the business object definition tag */ private BusinessObjectDefinitionTag createBusinessObjectDefinitionTagFromEntity(BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity) { return new BusinessObjectDefinitionTag(businessObjectDefinitionTagEntity.getId(), getBusinessObjectDefinitionTagKey(businessObjectDefinitionTagEntity)); }
/** * Creates a business object definition tag key from the entity. * * @param businessObjectDefinitionTagEntity the business object definition entity * * @return the business object definition tag key */ private BusinessObjectDefinitionTagKey getBusinessObjectDefinitionTagKey(BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity) { return new BusinessObjectDefinitionTagKey( new BusinessObjectDefinitionKey(businessObjectDefinitionTagEntity.getBusinessObjectDefinition().getNamespace().getCode(), businessObjectDefinitionTagEntity.getBusinessObjectDefinition().getName()), new TagKey(businessObjectDefinitionTagEntity.getTag().getTagType().getCode(), businessObjectDefinitionTagEntity.getTag().getTagCode())); }
@NamespacePermission(fields = "#businessObjectDefinitionTagKey.businessObjectDefinitionKey.namespace", permissions = { NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionTag deleteBusinessObjectDefinitionTag(BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey) { // Validate and trim the business object definition tag key. validateBusinessObjectDefinitionTagKey(businessObjectDefinitionTagKey); // Retrieve and ensure that a business object definition tag exists. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = getBusinessObjectDefinitionTagEntity(businessObjectDefinitionTagKey); // Delete this business object format. businessObjectDefinitionTagDao.delete(businessObjectDefinitionTagEntity); // Notify the search index that a business object definition must be updated. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionDaoHelper.getBusinessObjectDefinitionEntity(businessObjectDefinitionTagKey.getBusinessObjectDefinitionKey()); LOGGER.info("Modify the business object definition in the search index associated with the business object definition tag being deleted." + " tagTypeCode=\"{}\", tagCode=\"{}\", businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionTagEntity.getTag().getTagType().getCode(), businessObjectDefinitionTagEntity.getTag().getTagCode(), businessObjectDefinitionEntity.getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper.modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionEntity, SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Create and return the business object definition tag object from the deleted entity. return createBusinessObjectDefinitionTagFromEntity(businessObjectDefinitionTagEntity); }
/** * Creates and persists a new business object definition tag entity. * * @param businessObjectDefinitionEntity the business object definition entity * @param tagEntity the tag entity * * @return the newly created business object definition tag entity */ public BusinessObjectDefinitionTagEntity createBusinessObjectDefinitionTagEntity(BusinessObjectDefinitionEntity businessObjectDefinitionEntity, TagEntity tagEntity) { // Create a business object definition tag entity. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = new BusinessObjectDefinitionTagEntity(); businessObjectDefinitionTagEntity.setBusinessObjectDefinition(businessObjectDefinitionEntity); businessObjectDefinitionTagEntity.setTag(tagEntity); // Persist and return the newly created entity. return businessObjectDefinitionDao.saveAndRefresh(businessObjectDefinitionTagEntity); } }
@Test public void testDeleteBusinessObjectDefinitionTagLowerCaseParameters() { // Create a business object definition tag key. BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Create and persist a business object definition tag entity. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = businessObjectDefinitionTagDaoTestHelper .createBusinessObjectDefinitionTagEntity(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Validate that this business object definition tag exists. assertNotNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); // Delete this business object definition tag using lower case parameter values. BusinessObjectDefinitionTag result = businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase()), new TagKey(TAG_TYPE.toLowerCase(), TAG_CODE.toLowerCase()))); // Validate the returned object. assertEquals(new BusinessObjectDefinitionTag(businessObjectDefinitionTagEntity.getId(), businessObjectDefinitionTagKey), result); // Ensure that this business object definition tag is no longer there. assertNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); }
@NamespacePermission(fields = "#businessObjectDefinitionTagKey.businessObjectDefinitionKey.namespace", permissions = { NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionTag deleteBusinessObjectDefinitionTag(BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey) { // Validate and trim the business object definition tag key. validateBusinessObjectDefinitionTagKey(businessObjectDefinitionTagKey); // Retrieve and ensure that a business object definition tag exists. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = getBusinessObjectDefinitionTagEntity(businessObjectDefinitionTagKey); // Delete this business object format. businessObjectDefinitionTagDao.delete(businessObjectDefinitionTagEntity); // Notify the search index that a business object definition must be updated. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionDaoHelper.getBusinessObjectDefinitionEntity(businessObjectDefinitionTagKey.getBusinessObjectDefinitionKey()); LOGGER.info("Modify the business object definition in the search index associated with the business object definition tag being deleted." + " tagTypeCode=\"{}\", tagCode=\"{}\", businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionTagEntity.getTag().getTagType().getCode(), businessObjectDefinitionTagEntity.getTag().getTagCode(), businessObjectDefinitionEntity.getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper.modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionEntity, SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Create and return the business object definition tag object from the deleted entity. return createBusinessObjectDefinitionTagFromEntity(businessObjectDefinitionTagEntity); }
@Test public void testDeleteBusinessObjectDefinitionTagUpperCaseParameters() { // Create a business object definition tag key. BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Create and persist a business object definition tag entity. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = businessObjectDefinitionTagDaoTestHelper .createBusinessObjectDefinitionTagEntity(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Validate that this business object definition tag exists. assertNotNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); // Delete this business object definition tag using upper case parameter values. BusinessObjectDefinitionTag result = businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase()), new TagKey(TAG_TYPE.toUpperCase(), TAG_CODE.toUpperCase()))); // Validate the returned object. assertEquals(new BusinessObjectDefinitionTag(businessObjectDefinitionTagEntity.getId(), businessObjectDefinitionTagKey), result); // Ensure that this business object definition tag is no longer there. assertNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); }
@Test public void testDeleteBusinessObjectDefinitionTag() { // Create a business object definition tag key. BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Create and persist a business object definition tag entity. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = businessObjectDefinitionTagDaoTestHelper .createBusinessObjectDefinitionTagEntity(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Validate that this business object definition tag exists. assertNotNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); // Delete this business object definition tag. BusinessObjectDefinitionTag result = businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag(businessObjectDefinitionTagKey); // Validate the returned object. assertEquals(new BusinessObjectDefinitionTag(businessObjectDefinitionTagEntity.getId(), businessObjectDefinitionTagKey), result); // Ensure that this business object definition tag is no longer there. assertNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); }
@Test public void testDeleteBusinessObjectDefinitionTagTrimParameters() { // Create a business object definition tag key. BusinessObjectDefinitionTagKey businessObjectDefinitionTagKey = new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Create and persist a business object definition tag entity. BusinessObjectDefinitionTagEntity businessObjectDefinitionTagEntity = businessObjectDefinitionTagDaoTestHelper .createBusinessObjectDefinitionTagEntity(new BusinessObjectDefinitionKey(BDEF_NAMESPACE, BDEF_NAME), new TagKey(TAG_TYPE, TAG_CODE)); // Validate that this business object definition tag exists. assertNotNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); // Delete this business object definition tag using input parameters with leading and trailing empty spaces. BusinessObjectDefinitionTag result = businessObjectDefinitionTagService.deleteBusinessObjectDefinitionTag( new BusinessObjectDefinitionTagKey(new BusinessObjectDefinitionKey(addWhitespace(BDEF_NAMESPACE), addWhitespace(BDEF_NAME)), new TagKey(addWhitespace(TAG_TYPE), addWhitespace(TAG_CODE)))); // Validate the returned object. assertEquals(new BusinessObjectDefinitionTag(businessObjectDefinitionTagEntity.getId(), businessObjectDefinitionTagKey), result); // Ensure that this business object definition tag is no longer there. assertNull(businessObjectDefinitionTagDao.getBusinessObjectDefinitionTagByKey(businessObjectDefinitionTagKey)); }