code: protected void createProducts(ImportMatrix matrix, PCMContainer pcmContainer, Map<Integer, Feature> positionToFeature) {
  
          int featuresDepth = pcmContainer.getPcm().getFeaturesDepth();
  
          for (int row = featuresDepth; row < matrix.getNumberOfRows(); row++) {
              Product product = factory.createProduct();
  
              for (int column = 0; column < matrix.getNumberOfColumns(); column++) {
                  Cell cell = factory.createCell();
                  cell.setFeature(positionToFeature.get(column));
  
                  ImportCell ioCell = matrix.getCell(row, column);
  
                  if (ioCell == null) {
                      ioCell = new ImportCell("");
                  }
  
                  cell.setContent(ioCell.getContent());
                  cell.setRawContent(ioCell.getRawContent());
                  cell.setInterpretation(ioCell.getInterpretation());
  
                  product.addCell(cell);
              }
  
              pcmContainer.getPcm().addProduct(product);
              pcmContainer.getMetadata().setProductPosition(product, row);
          }
  
      }
docs: Detect and create products from the information contained in the matrix and the provided direction
  @param matrix matrix
  @param pcmContainer PCM container
  @param positionToFeature map between positions and features