/**
   * This method process the information for the txt files layouts that are not related with the
   * Qualifying questions layout.
   *
   * @param parseInputObject
   * @param sc
   * @param contRow
   * @param contCol
   * @param mapDataByCol
   * @param mapDataByRow
   * @param mapDataByMatrix
   * @param listColumnsNames
   */
  private static void parseRowColumIdxLayout(
      ParseInputObject parseInputObject,
      Scanner sc,
      Integer contRow,
      Integer contCol,
      Map<String, List<DataObject>> mapDataByCol,
      Map<String, List<DataObject>> mapDataByRow,
      Map<Integer, List<DataObject>> mapDataByMatrix,
      List<String> listColumnsNames) {
    Map<Integer, String> dataMap = new HashMap<Integer, String>();

    while (sc.hasNextLine()) {
      String valueX = sc.nextLine();
      List<DataObject> listMapDataByRow = new ArrayList<DataObject>();
      String rowName = "";

      if (valueX.isEmpty() == false) {
        Scanner sc1 = new Scanner(valueX);
        sc1.useDelimiter("\\t");
        while (sc1.hasNext()) {
          String valueY = sc1.next();
          boolean validated = false;

          if ((parseInputObject.getParseType() == PARSE_TYPES.BYCOLUMNNAME
                  && valueY.isEmpty() == false)
              || (parseInputObject.getParseType() == PARSE_TYPES.BYROWFIELD)
              || parseInputObject.getParseType() == PARSE_TYPES.ROWINDEX) {
            validated = true;
          }

          if (validated) {
            /*
             * LOG.debug("valueX3 : " + Pattern.compile("\\t").matcher(valueX).replaceAll("").length());
             */
            DataObject dataObject = new DataObject();
            dataObject.setColPos(contCol);
            dataObject.setRowNum(contRow);
            dataObject.setData(valueY);

            if (contRow == 0 && parseInputObject.getParseType() == PARSE_TYPES.BYCOLUMNNAME) {
              mapDataByCol.put(valueY, new ArrayList<DataObject>());
              dataMap.put(contCol, valueY);
            } else if (contCol == 0 && parseInputObject.getParseType() == PARSE_TYPES.BYROWFIELD) {
              rowName = valueY;
            }

            if (parseInputObject.getParseType() == PARSE_TYPES.BYROWFIELD && contCol > 0) {
              listMapDataByRow.add(dataObject);
            } else if (parseInputObject.getParseType() == PARSE_TYPES.BYCOLUMNNAME && contRow > 0) {
              String value = dataMap.get(contCol);

              if (mapDataByCol.containsKey(value)) {
                List<DataObject> listColumns = mapDataByCol.get(value);
                listColumns.add(dataObject);
                mapDataByCol.put(value, listColumns);
              }

            } else if (parseInputObject.getParseType() == PARSE_TYPES.ROWINDEX && contRow == 0) {
              listColumnsNames.add(valueY);
              /*
               *LOG.debug("listColumnsNames : " + listColumnsNames);
               */
            } else if (parseInputObject.getParseType() == PARSE_TYPES.ROWINDEX && contRow > 0) {
              dataObject.setColumnName(listColumnsNames.get(contCol));
              listMapDataByRow.add(dataObject);
            }
          }
          contCol++;
        }
      }

      if (parseInputObject.getParseType() == PARSE_TYPES.BYROWFIELD
          && !rowName.isEmpty()
          && !listMapDataByRow.isEmpty()) {
        if (LOG.isDebugEnabled()) {
          LOG.debug("Rp3UtilityParser parse rowName : " + rowName);
        }
        mapDataByRow.put(rowName, listMapDataByRow);
      } else if (parseInputObject.getParseType() == PARSE_TYPES.ROWINDEX) {
        mapDataByMatrix.put(contRow, listMapDataByRow);
      }

      contRow++;
      contCol = 0;
    }
  }