code: static <T extends FunctionMeta> Map<T, IDataModel> toMetaFunctions(Workbook book, Class<T> metaClass) {
          Map<T, IDataModel> map = new HashMap<>();
  
          book.addToolPack(Functions.getUdfFinder());
          final FormulaParsingWorkbook parsingBook = create((XSSFWorkbook) book);
          
          Sheet s = book.getSheetAt(0); /* TODO: only one sheet is supported */
          for (Row r : s) {
              for (Cell c : r) {
                  if (c == null || CELL_TYPE_FORMULA != c.getCellType()) { continue; }
                  
                  try {
                      String formula = c.getCellFormula();
                      String keyword = metaClass.getAnnotation(FunctionMeta.MetaFunctionKeyword.class).value();
  
                      if (!formula.startsWith(keyword)) { continue; }
  
                      IDataModel dataModel = createDataModelFromCell(s, parsingBook, fromRowColumn(c.getRowIndex(), c.getColumnIndex()));
                      T meta = createAttributeFunctionMeta(metaClass, formula, dataModel);
                      
                      map.put(meta, dataModel);
                  }
                  catch (Exception e) { log.debug("Warning while parsing custom excel formula. It is OK.", e); }
              }
          }
          
          return map;
      }
docs: Does the same logic as {@link #toDataModels(Workbook, String)}, but for each new {@link IDataModel} created
  also created an instance of given {@link FunctionMeta}.