test_class.file: herd-code/herd-tools/herd-retention-expiration-destroyer/src/test/java/org/finra/herd/tools/retention/destroyer/RetentionExpirationDestroyerControllerTest.java
test_class.identifier: RetentionExpirationDestroyerControllerTest
test_class.superclass: extends AbstractRetentionExpirationDestroyerTest
test_case.body: @Test
      public void testPerformRetentionExpirationDestruction() throws Exception
      {
          // Create a local input CSV file.
          File inputCsvFile = createLocalInputCsvFile();
  
          // Create and initialize the registration server DTO.
          RegServerAccessParamsDto regServerAccessParamsDto =
              RegServerAccessParamsDto.builder().withRegServerHost(WEB_SERVICE_HOSTNAME).withRegServerPort(WEB_SERVICE_HTTPS_PORT).withUseSsl(true)
                  .withUsername(WEB_SERVICE_HTTPS_USERNAME).withPassword(WEB_SERVICE_HTTPS_PASSWORD).withTrustSelfSignedCertificate(true)
                  .withDisableHostnameVerification(true).build();
  
          // Perform the retention expiration destruction.
          retentionExpirationDestroyerController.performRetentionExpirationDestruction(inputCsvFile, regServerAccessParamsDto);
      }
test_case.class_method_signature: RetentionExpirationDestroyerControllerTest.testPerformRetentionExpirationDestruction()
test_case.full_signature: @Test public void testPerformRetentionExpirationDestruction()
test_case.identifier: testPerformRetentionExpirationDestruction
test_case.invocations: createLocalInputCsvFile build withDisableHostnameVerification withTrustSelfSignedCertificate withPassword withUsername withUseSsl withRegServerPort withRegServerHost builder performRetentionExpirationDestruction
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testPerformRetentionExpirationDestruction()
focal_class.declarator: CSV_FILE_HEADER_COLUMNS =
          {"Namespace", "Business Object Definition Name", "Business Object Format Usage", "Business Object Format File Type", "Business Object Format Version",
              "Primary Partition Value", "Sub-Partition Value 1", "Sub-Partition Value 2", "Sub-Partition Value 3", "Sub-Partition Value 4",
              "Business Object Data Version", "Business Object Definition Display Name", "Business Object Definition URI"}
focal_class.modifier: private static final
focal_class.original_string: private static final String[] CSV_FILE_HEADER_COLUMNS =
          {"Namespace", "Business Object Definition Name", "Business Object Format Usage", "Business Object Format File Type", "Business Object Format Version",
              "Primary Partition Value", "Sub-Partition Value 1", "Sub-Partition Value 2", "Sub-Partition Value 3", "Sub-Partition Value 4",
              "Business Object Data Version", "Business Object Definition Display Name", "Business Object Definition URI"};
focal_class.type: String[]
focal_class.var_name: CSV_FILE_HEADER_COLUMNS
focal_class.declarator: LOGGER = LoggerFactory.getLogger(RetentionExpirationDestroyerController.class)
focal_class.modifier: private static final
focal_class.original_string: private static final Logger LOGGER = LoggerFactory.getLogger(RetentionExpirationDestroyerController.class);
focal_class.type: Logger
focal_class.var_name: LOGGER
focal_class.declarator: jsonHelper
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private JsonHelper jsonHelper;
focal_class.type: JsonHelper
focal_class.var_name: jsonHelper
focal_class.declarator: retentionExpirationDestroyerWebClient
focal_class.modifier: @Autowired
      private
focal_class.original_string: @Autowired
      private RetentionExpirationDestroyerWebClient retentionExpirationDestroyerWebClient;
focal_class.type: RetentionExpirationDestroyerWebClient
focal_class.var_name: retentionExpirationDestroyerWebClient
focal_class.file: herd-code/herd-tools/herd-retention-expiration-destroyer/src/main/java/org/finra/herd/tools/retention/destroyer/RetentionExpirationDestroyerController.java
focal_class.identifier: RetentionExpirationDestroyerController
focal_class.class_method_signature: RetentionExpirationDestroyerController.performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_class.full_signature: public void performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_class.identifier: performRetentionExpirationDestruction
focal_class.modifiers: public
focal_class.parameters: (File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_class.return: void
focal_class.signature: void performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_class.class_method_signature: RetentionExpirationDestroyerController.getBusinessObjectDataKey(String[] line, int lineNumber, File inputCsvFile)
focal_class.full_signature: protected BusinessObjectDataKey getBusinessObjectDataKey(String[] line, int lineNumber, File inputCsvFile)
focal_class.identifier: getBusinessObjectDataKey
focal_class.modifiers: protected
focal_class.parameters: (String[] line, int lineNumber, File inputCsvFile)
focal_class.return: BusinessObjectDataKey
focal_class.signature: BusinessObjectDataKey getBusinessObjectDataKey(String[] line, int lineNumber, File inputCsvFile)
focal_class.class_method_signature: RetentionExpirationDestroyerController.getBusinessObjectDataKeys(File inputCsvFile)
focal_class.full_signature: protected List<BusinessObjectDataKey> getBusinessObjectDataKeys(File inputCsvFile)
focal_class.identifier: getBusinessObjectDataKeys
focal_class.modifiers: protected
focal_class.parameters: (File inputCsvFile)
focal_class.return: List<BusinessObjectDataKey>
focal_class.signature: List<BusinessObjectDataKey> getBusinessObjectDataKeys(File inputCsvFile)
focal_method.body: public void performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto) throws Exception
      {
          // Read business object data keys from the input CSV file.
          List<BusinessObjectDataKey> businessObjectDataKeys = getBusinessObjectDataKeys(localInputFile);
  
          // Initialize the web client.
          retentionExpirationDestroyerWebClient.setRegServerAccessParamsDto(regServerAccessParamsDto);
  
          // Process business object data keys one by one.
          LOGGER.info("Processing {} business object data instances for destruction.", CollectionUtils.size(businessObjectDataKeys));
          for (BusinessObjectDataKey businessObjectDataKey : businessObjectDataKeys)
          {
              retentionExpirationDestroyerWebClient.destroyBusinessObjectData(businessObjectDataKey);
              LOGGER.info("Successfully marked for destruction. Business object data {}", jsonHelper.objectToJson(businessObjectDataKey));
          }
  
          LOGGER.info("Successfully processed {} business object data instances for destruction.", CollectionUtils.size(businessObjectDataKeys));
      }
focal_method.class_method_signature: RetentionExpirationDestroyerController.performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_method.full_signature: public void performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_method.identifier: performRetentionExpirationDestruction
focal_method.invocations: getBusinessObjectDataKeys setRegServerAccessParamsDto info size destroyBusinessObjectData info objectToJson info size
focal_method.modifiers: public
focal_method.parameters: (File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)
focal_method.return: void
focal_method.signature: void performRetentionExpirationDestruction(File localInputFile, RegServerAccessParamsDto regServerAccessParamsDto)