docs: @SuppressWarnings("unchecked") // NOSONAR (Avoid Duplicate Literals)
      private void processEachDataProviderWithEachRule() {
          // For each data provider
          for (DataProvider<DPO> dataProvider : dataProviders) {
              // Get the data provider output
              Object transformedOutput = dataProvider.getData();
  
              // Transform the data provider output
              if (dataProviderOutputTransformers != null) {
                  for (Transformer transformer : dataProviderOutputTransformers) {
                      transformedOutput = transformer.transform(transformedOutput);
                  }
              }
  
              // Transform the transformed data provider output to rule input
              if (ruleInputTransformers != null) {
                  for (Transformer transformer : ruleInputTransformers) {
                      transformedOutput = transformer.transform(transformedOutput);
                  }
              }
              RI ruleInput = (RI) transformedOutput;
  
              // Process the rule input with the rules
              processRules(ruleInput);
          }
      }