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 testGetBusinessObjectDataKeys() throws Exception
      {
          // Create a local input CSV file.
          File inputCsvFile = createLocalInputCsvFile();
  
          // Get and validate a list of business object data keys.
          List<BusinessObjectDataKey> result = retentionExpirationDestroyerController.getBusinessObjectDataKeys(inputCsvFile);
  
          // Validate the results.
          assertEquals(Arrays.asList(
              new BusinessObjectDataKey(NAMESPACE, BUSINESS_OBJECT_DEFINITION_NAME, BUSINESS_OBJECT_FORMAT_USAGE, BUSINESS_OBJECT_FORMAT_FILE_TYPE,
                  BUSINESS_OBJECT_FORMAT_VERSION, PRIMARY_PARTITION_VALUE, SUB_PARTITION_VALUES, BUSINESS_OBJECT_DATA_VERSION),
              new BusinessObjectDataKey(NAMESPACE, BUSINESS_OBJECT_DEFINITION_NAME, BUSINESS_OBJECT_FORMAT_USAGE, BUSINESS_OBJECT_FORMAT_FILE_TYPE,
                  BUSINESS_OBJECT_FORMAT_VERSION, PRIMARY_PARTITION_VALUE, NO_SUB_PARTITION_VALUES, BUSINESS_OBJECT_DATA_VERSION),
              new BusinessObjectDataKey(NAMESPACE + ",\"", BUSINESS_OBJECT_DEFINITION_NAME + ",\"", BUSINESS_OBJECT_FORMAT_USAGE + ",\"",
                  BUSINESS_OBJECT_FORMAT_FILE_TYPE + ",\"", BUSINESS_OBJECT_FORMAT_VERSION, PRIMARY_PARTITION_VALUE + ",\"", Arrays
                  .asList(SUB_PARTITION_VALUES.get(0) + ",\"", SUB_PARTITION_VALUES.get(1) + ",\"", SUB_PARTITION_VALUES.get(2) + ",\"",
                      SUB_PARTITION_VALUES.get(3) + ",\""), BUSINESS_OBJECT_DATA_VERSION)), result);
      }
test_case.class_method_signature: RetentionExpirationDestroyerControllerTest.testGetBusinessObjectDataKeys()
test_case.full_signature: @Test public void testGetBusinessObjectDataKeys()
test_case.identifier: testGetBusinessObjectDataKeys
test_case.invocations: createLocalInputCsvFile getBusinessObjectDataKeys assertEquals asList asList get get get get
test_case.modifiers: @Test public
test_case.parameters: ()
test_case.return: void
test_case.signature: void testGetBusinessObjectDataKeys()
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: protected List<BusinessObjectDataKey> getBusinessObjectDataKeys(File inputCsvFile) throws IOException
      {
          List<BusinessObjectDataKey> businessObjectDataKeyList = new ArrayList<>();
  
          // Read the input CSV file and populate business object data key list.
          try (CSVReader csvReader = new CSVReader(new InputStreamReader(new FileInputStream(inputCsvFile), StandardCharsets.UTF_8)))
          {
              String[] line;
  
              // Validate required header of the CSV input file.
              if ((line = csvReader.readNext()) == null || !Arrays.equals(line, CSV_FILE_HEADER_COLUMNS))
              {
                  throw new IllegalArgumentException(String.format("Input file \"%s\" does not contain the expected CSV file header.", inputCsvFile.toString()));
              }
  
              // Process the input CSV file line by line.
              int lineCount = 2;
              while ((line = csvReader.readNext()) != null)
              {
                  businessObjectDataKeyList.add(getBusinessObjectDataKey(line, lineCount++, inputCsvFile));
              }
          }
  
          return businessObjectDataKeyList;
      }
focal_method.class_method_signature: RetentionExpirationDestroyerController.getBusinessObjectDataKeys(File inputCsvFile)
focal_method.full_signature: protected List<BusinessObjectDataKey> getBusinessObjectDataKeys(File inputCsvFile)
focal_method.identifier: getBusinessObjectDataKeys
focal_method.invocations: readNext equals format toString readNext add getBusinessObjectDataKey
focal_method.modifiers: protected
focal_method.parameters: (File inputCsvFile)
focal_method.return: List<BusinessObjectDataKey>
focal_method.signature: List<BusinessObjectDataKey> getBusinessObjectDataKeys(File inputCsvFile)