/** * Creates a new business object definition column entity from the business object definition entity and the request information. * * @param businessObjectDefinitionEntity the business object definition entity * @param request the business object definition column create request * * @return the newly created business object definition column entity */ private BusinessObjectDefinitionColumnEntity createBusinessObjectDefinitionColumnEntity(BusinessObjectDefinitionEntity businessObjectDefinitionEntity, BusinessObjectDefinitionColumnCreateRequest request) { BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = new BusinessObjectDefinitionColumnEntity(); businessObjectDefinitionColumnEntity.setBusinessObjectDefinition(businessObjectDefinitionEntity); businessObjectDefinitionColumnEntity.setName(request.getBusinessObjectDefinitionColumnKey().getBusinessObjectDefinitionColumnName()); businessObjectDefinitionColumnEntity.setDescription(request.getDescription()); return businessObjectDefinitionColumnEntity; }
@NamespacePermission(fields = "#businessObjectDefinitionColumnKey.namespace", permissions = {NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionColumn updateBusinessObjectDefinitionColumn(BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey, BusinessObjectDefinitionColumnUpdateRequest request) { // Validate and trim the business object definition column key. validateBusinessObjectDefinitionColumnKey(businessObjectDefinitionColumnKey); // Validate and trim the business object definition column update request. validateBusinessObjectDefinitionColumnUpdateRequest(request); // Retrieve and ensure that a business object definition column exists with the business object definition. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoHelper.getBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey); // Update the entity with the new values. businessObjectDefinitionColumnEntity.setDescription(request.getDescription()); // Persist the change event entity businessObjectDefinitionColumnDaoHelper.saveBusinessObjectDefinitionColumnChangeEvents(businessObjectDefinitionColumnEntity); // Persist the entity. businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDao.saveAndRefresh(businessObjectDefinitionColumnEntity); // 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 column being updated." + " businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionColumnEntity.getBusinessObjectDefinition().getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper .modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionColumnEntity.getBusinessObjectDefinition(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Create and return the business object definition column object from the persisted entity. return createBusinessObjectDefinitionColumnFromEntity(businessObjectDefinitionColumnEntity, true, getValidSearchResponseFields(), false); }
businessObjectDefinitionColumn.setId(businessObjectDefinitionColumnEntity.getId()); businessObjectDefinitionColumn.setDescription(businessObjectDefinitionColumnEntity.getDescription()); if (fields.contains(SCHEMA_COLUMN_NAME_FIELD) && CollectionUtils.isNotEmpty(businessObjectDefinitionColumnEntity.getSchemaColumns())) businessObjectDefinitionColumn.setSchemaColumnName(IterableUtils.get(businessObjectDefinitionColumnEntity.getSchemaColumns(), 0).getName()); businessObjectDefinitionColumnEntity.getChangeEvents().forEach( businessObjectDefinitionColumnChangeEventEntity -> businessObjectDefinitionColumnChangeEvents.add( new BusinessObjectDefinitionColumnChangeEvent(businessObjectDefinitionColumnChangeEventEntity.getDescription(),
/** * 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()); }
/** * Update and persist the business object definition column change events * * @param businessObjectDefinitionColumnEntity the business object definition entity */ public void saveBusinessObjectDefinitionColumnChangeEvents(BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity) { // Set the change events and add an entry to the change event table List<BusinessObjectDefinitionColumnChangeEventEntity> businessObjectDefinitionColumnChangeEventEntities = new ArrayList<>(); BusinessObjectDefinitionColumnChangeEventEntity businessObjectDefinitionColumnChangeEventEntity = new BusinessObjectDefinitionColumnChangeEventEntity(); businessObjectDefinitionColumnChangeEventEntities.add(businessObjectDefinitionColumnChangeEventEntity); businessObjectDefinitionColumnChangeEventEntity.setBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnEntity); businessObjectDefinitionColumnChangeEventEntity.setDescription(businessObjectDefinitionColumnEntity.getDescription()); if (businessObjectDefinitionColumnEntity.getChangeEvents() != null) { businessObjectDefinitionColumnEntity.getChangeEvents().add(businessObjectDefinitionColumnChangeEventEntity); } else { businessObjectDefinitionColumnEntity.setChangeEvents(businessObjectDefinitionColumnChangeEventEntities); } } }
@Test public void testUpdateBusinessObjectDefinitionColumnUpperCaseParameters() { // Create a business object definition column key. BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey = new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE, BDEF_NAME, BDEF_COLUMN_NAME); // Create and persist a business object definition column. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoTestHelper.createBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey, BDEF_COLUMN_DESCRIPTION); // Create and persist a business object format entity. BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectFormatDaoTestHelper .createBusinessObjectFormatEntity(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, FORMAT_DESCRIPTION, FORMAT_DOCUMENT_SCHEMA, LATEST_VERSION_FLAG_SET, PARTITION_KEY); // Create and persist a schema column for this business object format that is linked with the business object definition column. schemaColumnDaoTestHelper.createSchemaColumnEntity(businessObjectFormatEntity, COLUMN_NAME, businessObjectDefinitionColumnEntity); // Update the business object definition column using upper case parameter values. BusinessObjectDefinitionColumn updatedBusinessObjectDefinitionColumn = businessObjectDefinitionColumnService.updateBusinessObjectDefinitionColumn( new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE.toUpperCase(), BDEF_NAME.toUpperCase(), BDEF_COLUMN_NAME.toUpperCase()), new BusinessObjectDefinitionColumnUpdateRequest(BDEF_COLUMN_DESCRIPTION_2.toUpperCase())); // Validate the returned object. assertEquals(new BusinessObjectDefinitionColumn(businessObjectDefinitionColumnEntity.getId(), businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION_2.toUpperCase(), NO_BUSINESS_OBJECT_DEFINITION_COLUMN_CHANGE_EVENTS), updatedBusinessObjectDefinitionColumn); }
@NamespacePermission(fields = "#businessObjectDefinitionColumnKey.namespace", permissions = {NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionColumn deleteBusinessObjectDefinitionColumn(BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey) { // Validate and trim the business object definition column key. validateBusinessObjectDefinitionColumnKey(businessObjectDefinitionColumnKey); // Retrieve and ensure that a business object definition column exists with the business object definition. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoHelper.getBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey); // Unlink schema columns from the business object definition column. for (SchemaColumnEntity schemaColumnEntity : businessObjectDefinitionColumnEntity.getSchemaColumns()) { schemaColumnEntity.setBusinessObjectDefinitionColumn(null); } // Delete the business object definition column. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionColumnEntity.getBusinessObjectDefinition(); businessObjectDefinitionEntity.getColumns().remove(businessObjectDefinitionColumnEntity); 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 column 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 column object from the deleted entity. return createBusinessObjectDefinitionColumnFromEntity(businessObjectDefinitionColumnEntity, true, getValidSearchResponseFields(), false); }
@Test public void testCreateBusinessObjectDefinitionColumn() { // Create and persist a business object format entity. BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectFormatDaoTestHelper .createBusinessObjectFormatEntity(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, FORMAT_DESCRIPTION, FORMAT_DOCUMENT_SCHEMA, LATEST_VERSION_FLAG_SET, PARTITION_KEY); // Create and persist a schema column for this business object format. SchemaColumnEntity schemaColumnEntity = schemaColumnDaoTestHelper.createSchemaColumnEntity(businessObjectFormatEntity, COLUMN_NAME); // Create a business object definition column key. BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey = new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE, BDEF_NAME, BDEF_COLUMN_NAME); // Create a business object definition column. businessObjectDefinitionColumnService.createBusinessObjectDefinitionColumn( new BusinessObjectDefinitionColumnCreateRequest(businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION)); // Get the business object definition column entity. BusinessObjectDefinitionColumnEntity resultBusinessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoHelper.getBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey); // Get the business object definition column. BusinessObjectDefinitionColumn resultBusinessObjectDefinitionColumn = businessObjectDefinitionColumnService.getBusinessObjectDefinitionColumn(businessObjectDefinitionColumnKey, true); // Validate the returned object. assertEquals(new BusinessObjectDefinitionColumn(resultBusinessObjectDefinitionColumn.getId(), businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION, Lists.newArrayList(new BusinessObjectDefinitionColumnChangeEvent(BDEF_COLUMN_DESCRIPTION, resultBusinessObjectDefinitionColumn.getBusinessObjectDefinitionColumnChangeEvents().get(0).getEventTime(), resultBusinessObjectDefinitionColumnEntity.getCreatedBy()))), resultBusinessObjectDefinitionColumn); // Validate that the schema column is now linked with the business object definition column. assertEquals(Long.valueOf(resultBusinessObjectDefinitionColumn.getId()), Long.valueOf(schemaColumnEntity.getBusinessObjectDefinitionColumn().getId())); }
@Test public void testGetBusinessObjectDefinitionColumnByBusinessObjectDefinitionColumnName() { // Create a business object definition column key. BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey = new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE, BDEF_NAME, BDEF_COLUMN_NAME); // Create a business object definition column entity. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoTestHelper.createBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey, BDEF_COLUMN_DESCRIPTION); // Get the business object definition entity. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionColumnEntity.getBusinessObjectDefinition(); // Get business object definition column. assertEquals(businessObjectDefinitionColumnEntity, businessObjectDefinitionColumnDao .getBusinessObjectDefinitionColumnByBusinessObjectDefinitionColumnName(businessObjectDefinitionEntity, BDEF_COLUMN_NAME)); // Get business object definition column by passing all case-insensitive parameters in uppercase. assertEquals(businessObjectDefinitionColumnEntity, businessObjectDefinitionColumnDao .getBusinessObjectDefinitionColumnByBusinessObjectDefinitionColumnName(businessObjectDefinitionEntity, BDEF_COLUMN_NAME.toUpperCase())); // Get business object definition column by passing all case-insensitive parameters in lowercase. assertEquals(businessObjectDefinitionColumnEntity, businessObjectDefinitionColumnDao .getBusinessObjectDefinitionColumnByBusinessObjectDefinitionColumnName(businessObjectDefinitionEntity, BDEF_COLUMN_NAME.toLowerCase())); // Try invalid values for all input parameters. assertNull(businessObjectDefinitionColumnDao.getBusinessObjectDefinitionColumnByBusinessObjectDefinitionColumnName( businessObjectDefinitionDaoTestHelper.createBusinessObjectDefinitionEntity(BDEF_NAMESPACE, BDEF_NAME_2, DATA_PROVIDER_NAME, DESCRIPTION), BDEF_COLUMN_NAME)); assertNull(businessObjectDefinitionColumnDao .getBusinessObjectDefinitionColumnByBusinessObjectDefinitionColumnName(businessObjectDefinitionEntity, "I_DO_NOT_EXIST")); }
new BusinessObjectDefinitionColumnChangeEvent(BDEF_COLUMN_DESCRIPTION_2, resultBusinessObjectDefinitionColumn.getBusinessObjectDefinitionColumnChangeEvents().get(0).getEventTime(), resultBusinessObjectDefinitionColumnEntityUpdated.getCreatedBy()), new BusinessObjectDefinitionColumnChangeEvent(BDEF_COLUMN_DESCRIPTION, resultBusinessObjectDefinitionColumn.getBusinessObjectDefinitionColumnChangeEvents().get(1).getEventTime(), resultBusinessObjectDefinitionColumnEntityCreated.getCreatedBy()));
@Test public void testUpdateBusinessObjectDefinitionColumnLowerCaseParameters() { // Create a business object definition column key. BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey = new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE, BDEF_NAME, BDEF_COLUMN_NAME); // Create and persist a business object definition column. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoTestHelper.createBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey, BDEF_COLUMN_DESCRIPTION); // Create and persist a business object format entity. BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectFormatDaoTestHelper .createBusinessObjectFormatEntity(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, FORMAT_DESCRIPTION, FORMAT_DOCUMENT_SCHEMA, LATEST_VERSION_FLAG_SET, PARTITION_KEY); // Create and persist a schema column for this business object format that is linked with the business object definition column. schemaColumnDaoTestHelper.createSchemaColumnEntity(businessObjectFormatEntity, COLUMN_NAME, businessObjectDefinitionColumnEntity); // Update the business object definition column using lower case parameter values. BusinessObjectDefinitionColumn updatedBusinessObjectDefinitionColumn = businessObjectDefinitionColumnService.updateBusinessObjectDefinitionColumn( new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), BDEF_COLUMN_NAME.toLowerCase()), new BusinessObjectDefinitionColumnUpdateRequest(BDEF_COLUMN_DESCRIPTION_2.toLowerCase())); // Validate the returned object. assertEquals(new BusinessObjectDefinitionColumn(businessObjectDefinitionColumnEntity.getId(), businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION_2.toLowerCase(), NO_BUSINESS_OBJECT_DEFINITION_COLUMN_CHANGE_EVENTS), updatedBusinessObjectDefinitionColumn); }
/** * 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()); }
/** * Update and persist the business object definition column change events * * @param businessObjectDefinitionColumnEntity the business object definition entity */ public void saveBusinessObjectDefinitionColumnChangeEvents(BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity) { // Set the change events and add an entry to the change event table List<BusinessObjectDefinitionColumnChangeEventEntity> businessObjectDefinitionColumnChangeEventEntities = new ArrayList<>(); BusinessObjectDefinitionColumnChangeEventEntity businessObjectDefinitionColumnChangeEventEntity = new BusinessObjectDefinitionColumnChangeEventEntity(); businessObjectDefinitionColumnChangeEventEntities.add(businessObjectDefinitionColumnChangeEventEntity); businessObjectDefinitionColumnChangeEventEntity.setBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnEntity); businessObjectDefinitionColumnChangeEventEntity.setDescription(businessObjectDefinitionColumnEntity.getDescription()); if (businessObjectDefinitionColumnEntity.getChangeEvents() != null) { businessObjectDefinitionColumnEntity.getChangeEvents().add(businessObjectDefinitionColumnChangeEventEntity); } else { businessObjectDefinitionColumnEntity.setChangeEvents(businessObjectDefinitionColumnChangeEventEntities); } } }
@NamespacePermission(fields = "#businessObjectDefinitionColumnKey.namespace", permissions = {NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionColumn deleteBusinessObjectDefinitionColumn(BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey) { // Validate and trim the business object definition column key. validateBusinessObjectDefinitionColumnKey(businessObjectDefinitionColumnKey); // Retrieve and ensure that a business object definition column exists with the business object definition. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoHelper.getBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey); // Unlink schema columns from the business object definition column. for (SchemaColumnEntity schemaColumnEntity : businessObjectDefinitionColumnEntity.getSchemaColumns()) { schemaColumnEntity.setBusinessObjectDefinitionColumn(null); } // Delete the business object definition column. BusinessObjectDefinitionEntity businessObjectDefinitionEntity = businessObjectDefinitionColumnEntity.getBusinessObjectDefinition(); businessObjectDefinitionEntity.getColumns().remove(businessObjectDefinitionColumnEntity); 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 column 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 column object from the deleted entity. return createBusinessObjectDefinitionColumnFromEntity(businessObjectDefinitionColumnEntity, true, getValidSearchResponseFields(), false); }
@Test public void testGetBusinessObjectDefinitionColumnWithChangeEvents() { // Create and persist a business object format entity. BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectFormatDaoTestHelper .createBusinessObjectFormatEntity(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, FORMAT_DESCRIPTION, FORMAT_DOCUMENT_SCHEMA, LATEST_VERSION_FLAG_SET, PARTITION_KEY); // Create and persist a schema column for this business object format. schemaColumnDaoTestHelper.createSchemaColumnEntity(businessObjectFormatEntity, COLUMN_NAME); // Create a business object definition column key. BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey = new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE, BDEF_NAME, BDEF_COLUMN_NAME); // Create a business object definition column. businessObjectDefinitionColumnService.createBusinessObjectDefinitionColumn( new BusinessObjectDefinitionColumnCreateRequest(businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION)); // Get the business object definition column entity. BusinessObjectDefinitionColumnEntity resultBusinessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoHelper.getBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey); // Get the business object definition column. BusinessObjectDefinitionColumn resultBusinessObjectDefinitionColumn = businessObjectDefinitionColumnService.getBusinessObjectDefinitionColumn(businessObjectDefinitionColumnKey, true); // Validate the returned object. assertEquals(new BusinessObjectDefinitionColumn(resultBusinessObjectDefinitionColumn.getId(), businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION, Lists.newArrayList(new BusinessObjectDefinitionColumnChangeEvent(BDEF_COLUMN_DESCRIPTION, resultBusinessObjectDefinitionColumn.getBusinessObjectDefinitionColumnChangeEvents().get(0).getEventTime(), resultBusinessObjectDefinitionColumnEntity.getCreatedBy()))), resultBusinessObjectDefinitionColumn); }
/** * Creates a new business object definition column entity from the business object definition entity and the request information. * * @param businessObjectDefinitionEntity the business object definition entity * @param request the business object definition column create request * * @return the newly created business object definition column entity */ private BusinessObjectDefinitionColumnEntity createBusinessObjectDefinitionColumnEntity(BusinessObjectDefinitionEntity businessObjectDefinitionEntity, BusinessObjectDefinitionColumnCreateRequest request) { BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = new BusinessObjectDefinitionColumnEntity(); businessObjectDefinitionColumnEntity.setBusinessObjectDefinition(businessObjectDefinitionEntity); businessObjectDefinitionColumnEntity.setName(request.getBusinessObjectDefinitionColumnKey().getBusinessObjectDefinitionColumnName()); businessObjectDefinitionColumnEntity.setDescription(request.getDescription()); return businessObjectDefinitionColumnEntity; }
@Test public void testGetBusinessObjectDefinitionColumnLowerCaseParameters() { // Create a business object definition column key. BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey = new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE, BDEF_NAME, BDEF_COLUMN_NAME); // Create and persist a business object definition column. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoTestHelper.createBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey, BDEF_COLUMN_DESCRIPTION); // Create and persist a business object format entity. BusinessObjectFormatEntity businessObjectFormatEntity = businessObjectFormatDaoTestHelper .createBusinessObjectFormatEntity(BDEF_NAMESPACE, BDEF_NAME, FORMAT_USAGE_CODE, FORMAT_FILE_TYPE_CODE, FORMAT_VERSION, FORMAT_DESCRIPTION, FORMAT_DOCUMENT_SCHEMA, LATEST_VERSION_FLAG_SET, PARTITION_KEY); // Create and persist a schema column for this business object format that is linked with the business object definition column. schemaColumnDaoTestHelper.createSchemaColumnEntity(businessObjectFormatEntity, COLUMN_NAME, businessObjectDefinitionColumnEntity); // Get this business object definition column using lower case parameter values. BusinessObjectDefinitionColumn resultBusinessObjectDefinitionColumn = businessObjectDefinitionColumnService.getBusinessObjectDefinitionColumn( new BusinessObjectDefinitionColumnKey(BDEF_NAMESPACE.toLowerCase(), BDEF_NAME.toLowerCase(), BDEF_COLUMN_NAME.toLowerCase()), false); // Validate the returned object. assertEquals(new BusinessObjectDefinitionColumn(businessObjectDefinitionColumnEntity.getId(), businessObjectDefinitionColumnKey, COLUMN_NAME, BDEF_COLUMN_DESCRIPTION, NO_BUSINESS_OBJECT_DEFINITION_COLUMN_CHANGE_EVENTS), resultBusinessObjectDefinitionColumn); }
businessObjectDefinitionColumn.setId(businessObjectDefinitionColumnEntity.getId()); businessObjectDefinitionColumn.setDescription(businessObjectDefinitionColumnEntity.getDescription()); if (fields.contains(SCHEMA_COLUMN_NAME_FIELD) && CollectionUtils.isNotEmpty(businessObjectDefinitionColumnEntity.getSchemaColumns())) businessObjectDefinitionColumn.setSchemaColumnName(IterableUtils.get(businessObjectDefinitionColumnEntity.getSchemaColumns(), 0).getName()); businessObjectDefinitionColumnEntity.getChangeEvents().forEach( businessObjectDefinitionColumnChangeEventEntity -> businessObjectDefinitionColumnChangeEvents.add( new BusinessObjectDefinitionColumnChangeEvent(businessObjectDefinitionColumnChangeEventEntity.getDescription(),
@NamespacePermission(fields = "#businessObjectDefinitionColumnKey.namespace", permissions = {NamespacePermissionEnum.WRITE_DESCRIPTIVE_CONTENT, NamespacePermissionEnum.WRITE}) @Override public BusinessObjectDefinitionColumn updateBusinessObjectDefinitionColumn(BusinessObjectDefinitionColumnKey businessObjectDefinitionColumnKey, BusinessObjectDefinitionColumnUpdateRequest request) { // Validate and trim the business object definition column key. validateBusinessObjectDefinitionColumnKey(businessObjectDefinitionColumnKey); // Validate and trim the business object definition column update request. validateBusinessObjectDefinitionColumnUpdateRequest(request); // Retrieve and ensure that a business object definition column exists with the business object definition. BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDaoHelper.getBusinessObjectDefinitionColumnEntity(businessObjectDefinitionColumnKey); // Update the entity with the new values. businessObjectDefinitionColumnEntity.setDescription(request.getDescription()); // Persist the change event entity businessObjectDefinitionColumnDaoHelper.saveBusinessObjectDefinitionColumnChangeEvents(businessObjectDefinitionColumnEntity); // Persist the entity. businessObjectDefinitionColumnEntity = businessObjectDefinitionColumnDao.saveAndRefresh(businessObjectDefinitionColumnEntity); // 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 column being updated." + " businessObjectDefinitionId=\"{}\", searchIndexUpdateType=\"{}\"", businessObjectDefinitionColumnEntity.getBusinessObjectDefinition().getId(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); searchIndexUpdateHelper .modifyBusinessObjectDefinitionInSearchIndex(businessObjectDefinitionColumnEntity.getBusinessObjectDefinition(), SEARCH_INDEX_UPDATE_TYPE_UPDATE); // Create and return the business object definition column object from the persisted entity. return createBusinessObjectDefinitionColumnFromEntity(businessObjectDefinitionColumnEntity, true, getValidSearchResponseFields(), false); }
/** * Creates and persists a new business object definition column entity. * * @param businessObjectDefinitionEntity the business object definition entity * @param businessObjectDefinitionColumnName the name of the business object definition column * @param businessObjectDefinitionColumnDescription the description of the business object definition column * * @return the newly created business object definition column entity */ public BusinessObjectDefinitionColumnEntity createBusinessObjectDefinitionColumnEntity(BusinessObjectDefinitionEntity businessObjectDefinitionEntity, String businessObjectDefinitionColumnName, String businessObjectDefinitionColumnDescription) { BusinessObjectDefinitionColumnEntity businessObjectDefinitionColumnEntity = new BusinessObjectDefinitionColumnEntity(); businessObjectDefinitionColumnEntity.setBusinessObjectDefinition(businessObjectDefinitionEntity); businessObjectDefinitionColumnEntity.setName(businessObjectDefinitionColumnName); businessObjectDefinitionColumnEntity.setDescription(businessObjectDefinitionColumnDescription); return businessObjectDefinitionColumnDao.saveAndRefresh(businessObjectDefinitionColumnEntity); } }