/** * 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; } }