docs: public static void readXLSXRuleFile(String xlsxFileName, HashMap<Integer, ContextRule> rules,
                                          HashMap<String, TypeDefinition> conceptFeaturesMap,
                                          HashMap<String, String> featureDefaultValueMap,
                                          HashMap<String, String> valueFeatureNameMap) {
          try {
              FileInputStream inputStream = new FileInputStream(new File(xlsxFileName));
              Workbook workbook = new XSSFWorkbook(inputStream);
              Sheet firstSheet = workbook.getSheetAt(0);
              Iterator<Row> iterator = firstSheet.iterator();
              int id = 0;
              while (iterator.hasNext()) {
                  Row nextRow = iterator.next();
                  Iterator<Cell> cellIterator = nextRow.cellIterator();
                  ArrayList<String> cells = new ArrayList<>();
                  while (cellIterator.hasNext()) {
                      Cell cell = cellIterator.next();
                      switch (cell.getCellTypeEnum()) {
                          case NUMERIC:
                              cells.add(cell.getNumericCellValue() + "");
                              break;
                          default:
                              cells.add(cell.getStringCellValue());
                              break;
                      }
                  }
                  if (cells.size() > 0 && cells.get(0).trim().length() > 0)
                      parseCells(cells, id, rules, conceptFeaturesMap, featureDefaultValueMap, valueFeatureNameMap);
                  id++;
              }
          } catch (IOException e) {
              e.printStackTrace();
          }
      }