public void parse(Configuration configuration, Sheet sheet, Entity entity) {
    int startRow = NumberUtils.toInt(configuration.getStartRow());

    while (true) {

      String logicalName =
          ParserUtils.getCellValue(sheet, startRow, configuration.getAttributeLogicalCol());
      String physicalName =
          ParserUtils.getCellValue(sheet, startRow, configuration.getAttributePhysicalCol());

      if (ParserUtils.isEmptyBoth(logicalName, physicalName) || startRow > EXCEL_LIMIT_ROW) {
        break;
      }

      Attribute attr = new Attribute();
      attr.setLogicalName(logicalName);
      attr.setPhysicalName(physicalName);

      parsePrimaryKey(configuration, sheet, startRow, attr);

      parseNotNull(configuration, sheet, startRow, attr);

      parseDataType(configuration, sheet, startRow, attr);

      parseLength(configuration, sheet, startRow, attr);

      parseDefaultValue(configuration, sheet, startRow, attr);

      parseDefinition(configuration, sheet, startRow, attr);

      entity.addAttribute(attr);
      startRow++;
    }
    ;
  }