businessObjectDefinition.setId(businessObjectDefinitionEntity.getId()); businessObjectDefinition.setNamespace(businessObjectDefinitionEntity.getNamespace().getCode()); businessObjectDefinition.setBusinessObjectDefinitionName(businessObjectDefinitionEntity.getName()); businessObjectDefinition.setDescription(businessObjectDefinitionEntity.getDescription()); businessObjectDefinition.setDataProviderName(businessObjectDefinitionEntity.getDataProvider().getName()); businessObjectDefinition.setDisplayName(businessObjectDefinitionEntity.getDisplayName()); for (BusinessObjectDefinitionAttributeEntity attributeEntity : businessObjectDefinitionEntity.getAttributes()) if (businessObjectDefinitionEntity.getDescriptiveBusinessObjectFormat() != null) BusinessObjectFormatEntity descriptiveFormatEntity = businessObjectDefinitionEntity.getDescriptiveBusinessObjectFormat(); DescriptiveBusinessObjectFormat descriptiveBusinessObjectFormat = new DescriptiveBusinessObjectFormat(); businessObjectDefinition.setDescriptiveBusinessObjectFormat(descriptiveBusinessObjectFormat); for (BusinessObjectDefinitionSampleDataFileEntity sampleDataFileEntity : businessObjectDefinitionEntity.getSampleDataFiles()) businessObjectDefinition.setCreatedByUserId(businessObjectDefinitionEntity.getCreatedBy()); businessObjectDefinition.setLastUpdatedByUserId(businessObjectDefinitionEntity.getUpdatedBy()); businessObjectDefinition.setLastUpdatedOn(HerdDateUtils.getXMLGregorianCalendarValue(businessObjectDefinitionEntity.getUpdatedOn())); if (BooleanUtils.isTrue(includeBusinessObjectDefinitionUpdateHistory)) businessObjectDefinitionEntity.getChangeEvents().forEach(businessObjectDefinitionChangeEventEntity -> { DescriptiveBusinessObjectFormatUpdateRequest descriptiveBusinessObjectFormatUpdateRequest = null; if (businessObjectDefinitionChangeEventEntity.getFileType() != null)
businessObjectDefinitionEntity = new BusinessObjectDefinitionEntity(); businessObjectDefinitionEntity.setNamespace(namespaceEntity); businessObjectDefinitionEntity.setName(request.getBusinessObjectDefinitionName()); businessObjectDefinitionEntity.setDescription(request.getDescription()); businessObjectDefinitionEntity.setDataProvider(dataProviderEntity); businessObjectDefinitionEntity.setDisplayName(request.getDisplayName()); businessObjectDefinitionEntity.setAttributes(attributeEntities); for (Attribute attribute : request.getAttributes())
/** * 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); } }
businessObjectDefinitionChangeEventEntities.add(businessObjectDefinitionChangeEventEntity); boolean changeEventOccurred = false; if (businessObjectDefinitionEntity.getDisplayName() != null) businessObjectDefinitionChangeEventEntity.setDisplayName(businessObjectDefinitionEntity.getDisplayName()); changeEventOccurred = true; if (businessObjectDefinitionEntity.getDescription() != null) businessObjectDefinitionChangeEventEntity.setDescription(businessObjectDefinitionEntity.getDescription()); changeEventOccurred = true; if (businessObjectDefinitionEntity.getDescriptiveBusinessObjectFormat() != null) businessObjectDefinitionChangeEventEntity.setUsage(businessObjectDefinitionEntity.getDescriptiveBusinessObjectFormat().getUsage()); businessObjectDefinitionChangeEventEntity.setFileType(businessObjectDefinitionEntity.getDescriptiveBusinessObjectFormat().getFileType().getCode()); changeEventOccurred = true; if (businessObjectDefinitionEntity.getChangeEvents() != null) businessObjectDefinitionEntity.getChangeEvents().add(businessObjectDefinitionChangeEventEntity); businessObjectDefinitionEntity.setChangeEvents(businessObjectDefinitionChangeEventEntities);
/** * Creates a business object definition column key from the entity. * * @param businessObjectDefinitionColumnEntity the business object definition entity * * @return the business object definition column key */ private BusinessObjectDefinitionColumnKey getBusinessObjectDefinitionColumnKey(BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity) { return new BusinessObjectDefinitionColumnKey(businessObjectDefinitionColumnEntity.getBusinessObjectDefinition().getNamespace().getCode(), businessObjectDefinitionColumnEntity.getBusinessObjectDefinition().getName(), businessObjectDefinitionColumnEntity.getName()); }
@Test public void testGetBusinessObjectDefinitionUpperCaseParameters() { // Create and persist a business object definition entity using lower case values. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionDaoTestHelper .createBusinessObjectDefinitionEntity(NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), DATA_PROVIDER_NAME.toLowerCase(), BDEF_DESCRIPTION.toLowerCase(), BDEF_DISPLAY_NAME.toLowerCase(), businessObjectDefinitionServiceTestHelper.getNewAttributes()); // Retrieve the business object definition using upper case input parameters. BusinessObjectDefinition resultBusinessObjectDefinition = businessObjectDefinitionService .getBusinessObjectDefinition(new BusinessObjectDefinitionKey(NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase()), NOT_INCLUDE_BUSINESS_OBJECT_DEFINITION_UPDATE_HISTORY); // Validate the returned object. assertEquals(new BusinessObjectDefinition(businessObjectDefinitionEntity.getId(), NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), DATA_PROVIDER_NAME.toLowerCase(), BDEF_DESCRIPTION.toLowerCase(), NO_BDEF_SHORT_DESCRIPTION, BDEF_DISPLAY_NAME.toLowerCase(), businessObjectDefinitionServiceTestHelper.getNewAttributes(), NO_DESCRIPTIVE_BUSINESS_OBJECT_FORMAT, NO_SAMPLE_DATA_FILES, businessObjectDefinitionEntity.getCreatedBy(), businessObjectDefinitionEntity.getUpdatedBy(), HerdDateUtils.getXMLGregorianCalendarValue(businessObjectDefinitionEntity.getUpdatedOn()), NO_BUSINESS_OBJECT_DEFINITION_CHANGE_EVENTS), resultBusinessObjectDefinition); }
BusinessObjectDefinitionEntity businessObjectDefinitionEntity = new BusinessObjectDefinitionEntity(); businessObjectDefinitionEntity.setNamespace(namespaceEntity); businessObjectDefinitionEntity.setName(businessObjectDefinitionDescriptionSuggestionKey.getBusinessObjectDefinitionName());
BusinessObjectDefinitionEntity businessObjectDefinitionEntity = new BusinessObjectDefinitionEntity(); businessObjectDefinitionEntity.setName(BDEF_NAME); businessObjectDefinitionEntity.setNamespace(namespaceEntity); "Business object definition description suggestion with the parameters " + " {namespace=\"%s\", businessObjectDefinitionName=\"%s\", userId=\"%s\"} does not exist.", businessObjectDefinitionEntity.getNamespace().getCode(), businessObjectDefinitionEntity.getName(), USER_ID))));
businessObjectFormatKey.setBusinessObjectDefinitionName(businessObjectDefinitionEntity.getName()); businessObjectFormatKey.setNamespace(businessObjectDefinitionEntity.getNamespace().getCode()); businessObjectFormatKey.setBusinessObjectFormatFileType(descriptiveFormat.getBusinessObjectFormatFileType()); businessObjectFormatKey.setBusinessObjectFormatUsage(descriptiveFormat.getBusinessObjectFormatUsage()); businessObjectFormatEntity = businessObjectFormatDaoHelper.getBusinessObjectFormatEntity(businessObjectFormatKey); businessObjectDefinitionEntity.setDescriptiveBusinessObjectFormat(businessObjectFormatEntity); " businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionEntity.getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper.modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionEntity, SEARCH_INDEX_UPDATE_TYPE_UPDATE);
if (businessObjectFormatEntity.equals(businessObjectFormatEntity.getBusinessObjectDefinition().getDescriptiveBusinessObjectFormat())) businessObjectFormatEntity.getBusinessObjectDefinition().setDescriptiveBusinessObjectFormat(null); businessObjectDefinitionDao.saveAndRefresh(businessObjectFormatEntity.getBusinessObjectDefinition()); " businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionEntity.getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper.modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionEntity, SEARCH_INDEX_UPDATE_TYPE_UPDATE);
/** * Creates and persists a new business object definition. * * @return the newly created business object definition. */ public BusinessObjectDefinitionEntity createBusinessObjectDefinition() { String businessObjectDefinitionName = "BusObjDefTest" + AbstractDaoTest.getRandomSuffix(); BusinessObjectDefinitionEntity businessObjectDefinitionEntity = new BusinessObjectDefinitionEntity(); businessObjectDefinitionEntity.setNamespace(namespaceDaoTestHelper.createNamespaceEntity()); businessObjectDefinitionEntity.setDataProvider(dataProviderDaoTestHelper.createDataProviderEntity()); businessObjectDefinitionEntity.setName(businessObjectDefinitionName); businessObjectDefinitionEntity.setDescription("test"); return businessObjectDefinitionDao.saveAndRefresh(businessObjectDefinitionEntity); }
@Test public void testModifyBusinessObjectDefinitionsInSearchIndexBlankMessage() { // Create a business object data entity BusinessObjectDefinitionEntity businessObjectDefinitionEntity = new BusinessObjectDefinitionEntity(); businessObjectDefinitionEntity.setId(1); List<BusinessObjectDefinitionEntity> businessObjectDefinitionEntityList = new ArrayList<>(); businessObjectDefinitionEntityList.add(businessObjectDefinitionEntity); // Create a list of business object definition ids List<Integer> businessObjectDefinitionIds = new ArrayList<>(); businessObjectDefinitionIds.add(businessObjectDefinitionEntity.getId()); // Create a search index dto SearchIndexUpdateDto searchIndexUpdateDto = new SearchIndexUpdateDto(MESSAGE_TYPE_BUSINESS_OBJECT_DEFINITION_UPDATE, businessObjectDefinitionIds, SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Mock the call to external methods when(jsonHelper.objectToJson(searchIndexUpdateDto)).thenReturn(""); when(configurationHelper.getProperty(ConfigurationValue.SEARCH_INDEX_UPDATE_JMS_LISTENER_ENABLED)).thenReturn("true"); when(configurationHelper.getProperty(ConfigurationValue.SEARCH_INDEX_UPDATE_SQS_QUEUE_NAME)).thenReturn(AWS_SQS_QUEUE_NAME); // Call the method under test searchIndexUpdateHelper.modifyBusinessObjectDefinitionsInSearchIndex(businessObjectDefinitionEntityList, SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Verify the calls to external methods verify(jsonHelper).objectToJson(searchIndexUpdateDto); verify(configurationHelper).getProperty(ConfigurationValue.SEARCH_INDEX_UPDATE_JMS_LISTENER_ENABLED); verifyNoMoreInteractionsHelper(); }
/** * Creates a business object definition from a business object definition entity. * * @param businessObjectDefinitionEntity the specified business object definition entity * * @return the business object definition entity */ public BusinessObjectDefinition createBusinessObjectDefinitionFromEntityForSearchTesting(BusinessObjectDefinitionEntity businessObjectDefinitionEntity) { BusinessObjectDefinition businessObjectDefinition = new BusinessObjectDefinition(); businessObjectDefinition.setNamespace(businessObjectDefinitionEntity.getNamespace().getCode()); businessObjectDefinition.setBusinessObjectDefinitionName(businessObjectDefinitionEntity.getName()); businessObjectDefinition.setDataProviderName(businessObjectDefinitionEntity.getDataProvider().getName()); businessObjectDefinition.setDisplayName(businessObjectDefinitionEntity.getDisplayName()); String toParse = businessObjectDefinitionEntity.getDescription() != null ? businessObjectDefinitionEntity.getDescription() : ""; businessObjectDefinition.setShortDescription(StringUtils.left(Jsoup.parseBodyFragment(toParse).body().text(), configurationHelper.getProperty(ConfigurationValue.BUSINESS_OBJECT_DEFINITION_SHORT_DESCRIPTION_LENGTH, Integer.class))); return businessObjectDefinition; }
@Test public void testCreateBusinessObjectDefinitionLowerCaseParameters() { // Create and persist database entities required for testing using upper case values. businessObjectDefinitionServiceTestHelper .createDatabaseEntitiesForBusinessObjectDefinitionTesting(NAMESPACE.toUpperCase(), DATA_PROVIDER_NAME.toUpperCase()); // Create a business object definition using upper case input parameters. BusinessObjectDefinition resultBusinessObjectDefinition = businessObjectDefinitionService.createBusinessObjectDefinition( new BusinessObjectDefinitionCreateRequest(NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), DATA_PROVIDER_NAME.toLowerCase(), BDEF_DESCRIPTION.toLowerCase(), BDEF_DISPLAY_NAME.toLowerCase(), Arrays.asList(new Attribute(ATTRIBUTE_NAME_1_MIXED_CASE.toLowerCase(), ATTRIBUTE_VALUE_1.toLowerCase())))); // Get the business object definition entity. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionDao.getBusinessObjectDefinitionByKey(new BusinessObjectDefinitionKey(NAMESPACE, BDEF_NAME)); assertNotNull(businessObjectDefinitionEntity); // Validate the returned object. assertEquals(new BusinessObjectDefinition(resultBusinessObjectDefinition.getId(), NAMESPACE.toUpperCase(), BDEF_NAME.toLowerCase(), DATA_PROVIDER_NAME.toUpperCase(), BDEF_DESCRIPTION.toLowerCase(), NO_BDEF_SHORT_DESCRIPTION, BDEF_DISPLAY_NAME.toLowerCase(), Arrays.asList(new Attribute(ATTRIBUTE_NAME_1_MIXED_CASE.toLowerCase(), ATTRIBUTE_VALUE_1.toLowerCase())), NO_DESCRIPTIVE_BUSINESS_OBJECT_FORMAT, NO_SAMPLE_DATA_FILES, businessObjectDefinitionEntity.getCreatedBy(), businessObjectDefinitionEntity.getUpdatedBy(), HerdDateUtils.getXMLGregorianCalendarValue(businessObjectDefinitionEntity.getUpdatedOn()), NO_BUSINESS_OBJECT_DEFINITION_CHANGE_EVENTS), resultBusinessObjectDefinition); }
BusinessObjectDefinitionEntity businessObjectDefinitionEntity = new BusinessObjectDefinitionEntity(); businessObjectDefinitionEntity.setNamespace(namespaceEntity); businessObjectDefinitionEntity.setName(businessObjectDefinitionDescriptionSuggestionKey.getBusinessObjectDefinitionName()); is(equalTo(acceptedBusinessObjectDefinitionDescriptionSuggestion))); assertThat("Expected business object definition entity description to be equal to response description.", response.getDescriptionSuggestion(), is(equalTo(businessObjectDefinitionEntity.getDescription())));
@Override public List<Integer> getBusinessObjectFormatIdsByBusinessObjectDefinition(BusinessObjectDefinitionEntity businessObjectDefinitionEntity) { // Create the criteria builder and the criteria. CriteriaBuilder builder = entityManager.getCriteriaBuilder(); CriteriaQuery<Integer> criteria = builder.createQuery(Integer.class); // The criteria root is the business object format. Root<BusinessObjectFormatEntity> businessObjectFormatEntityRoot = criteria.from(BusinessObjectFormatEntity.class); // Create path. Expression<Integer> businessObjectFormatIdColumn = businessObjectFormatEntityRoot.get(BusinessObjectFormatEntity_.id); // Create standard restrictions. Predicate predicate = builder.equal(businessObjectFormatEntityRoot.get(BusinessObjectFormatEntity_.businessObjectDefinitionId), businessObjectDefinitionEntity.getId()); // Build an order by clause. Order orderBy = builder.asc(businessObjectFormatEntityRoot.get(BusinessObjectFormatEntity_.id)); // Add all clauses to the query. criteria.select(businessObjectFormatIdColumn).where(predicate).orderBy(orderBy); // Execute the query and return the results. return entityManager.createQuery(criteria).getResultList(); }
@Test public void testExecuteFunctionForBusinessObjectDefinitionEntities() { // Create a list of business object definition entities. final List<BusinessObjectDefinitionEntity> businessObjectDefinitionEntities = Collections.unmodifiableList(Arrays.asList( businessObjectDefinitionDaoTestHelper.createBusinessObjectDefinitionEntity(BDEF_NAMESPACE, BDEF_NAME, DATA_PROVIDER_NAME, BDEF_DESCRIPTION, businessObjectDefinitionServiceTestHelper.getNewAttributes()), businessObjectDefinitionDaoTestHelper .createBusinessObjectDefinitionEntity(BDEF_NAMESPACE_2, BDEF_NAME_2, DATA_PROVIDER_NAME_2, BDEF_DESCRIPTION_2, businessObjectDefinitionServiceTestHelper.getNewAttributes2()))); businessObjectDefinitionEntities.forEach(entity -> { entity.setDescriptiveBusinessObjectFormat(new BusinessObjectFormatEntity()); entity.getDescriptiveBusinessObjectFormat().setSchemaColumns(new ArrayList<>()); entity.setSubjectMatterExperts(new ArrayList<>()); }); // Mock the external calls. when(jsonHelper.objectToJson(any())).thenReturn(JSON_STRING); // Execute a function for all business object definition entities. businessObjectDefinitionHelper .executeFunctionForBusinessObjectDefinitionEntities(SEARCH_INDEX_NAME, SEARCH_INDEX_DOCUMENT_TYPE, businessObjectDefinitionEntities, (indexName, documentType, id, json) -> { }); // Verify the external calls. verify(jsonHelper, times(businessObjectDefinitionEntities.size())).objectToJson(any()); verifyNoMoreInteractions(alternateKeyHelper, jsonHelper); }
if (businessObjectDefinitionEntity.getDescriptiveBusinessObjectFormat() == null) " businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionEntity.getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper.modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionEntity, SEARCH_INDEX_UPDATE_TYPE_UPDATE);
@NamespacePermission(fields = "#key.namespace", permissions = {NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionSubjectMatterExpert deleteBusinessObjectDefinitionSubjectMatterExpert(BusinessObjectDefinitionSubjectMatterExpertKey key) { // Validate and trim the business object definition subject matter expert key. validateBusinessObjectDefinitionSubjectMatterExpertKey(key); // Retrieve and ensure that a business object definition subject matter expert exists. BusinessObjectDefinitionSubjectMatterExpertEntity businessObjectDefinitionSubjectMatterExpertEntity = businessObjectDefinitionSubjectMatterExpertDaoHelper.getBusinessObjectDefinitionSubjectMatterExpertEntity(key); // Delete the business object definition subject matter expert. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionSubjectMatterExpertEntity.getBusinessObjectDefinition(); businessObjectDefinitionEntity.getSubjectMatterExperts().remove(businessObjectDefinitionSubjectMatterExpertEntity); businessObjectDefinitionDao.saveAndRefresh(businessObjectDefinitionEntity); // Notify the search index that a business object definition must be updated. LOGGER.info( "Modify the business object definition in the search index associated with the business object definition subject matter expert being deleted." + " businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionEntity.getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper.modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionEntity, SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Create and return the business object definition subject matter expert object from the deleted entity. return createBusinessObjectDefinitionSubjectMatterExpertFromEntity(businessObjectDefinitionSubjectMatterExpertEntity); }
businessObjectDefinitionEntity.setDescriptiveBusinessObjectFormat(businessObjectFormatEntity); businessObjectDefinitionDao.saveAndRefresh(businessObjectDefinitionEntity);