/** * This method is going to return a ParsedOutputObject from arrays of bytes * * @param parseInputObject * @return */ public static ParseOutputObject parse(ParseInputObject parseInputObject) { ParseOutputObject res = new ParseOutputObject(); boolean error = false; if (parseInputObject == null || parseInputObject.getStatusMessagingList() == null) { throw new IllegalArgumentException( "Rp3UtilityParser.parse parseInputObject is invalid : " + parseInputObject); } if (LOG.isDebugEnabled()) { LOG.debug( "Rp3UtilityParser parse beginning parseInputObject.getParseType() : " + parseInputObject.getParseType()); LOG.debug("Rp3UtilityParser parse beginning FileName : " + parseInputObject.getFileName()); LOG.debug( "Rp3UtilityParser parse beginning parseInputObject.getStatusMessagingList() : " + parseInputObject.getStatusMessagingList()); } try { if (parseInputObject.getData() != null && parseInputObject.getData().length > 0) { String stringContent = new String(parseInputObject.getData()); Scanner sc = new Scanner(stringContent); Integer contRow = 0; Integer contCol = 0; Map<String, List<DataObject>> mapDataByCol = new LinkedHashMap<String, List<DataObject>>(); Map<String, List<DataObject>> mapDataByRow = new LinkedHashMap<String, List<DataObject>>(); Map<Integer, List<DataObject>> mapDataByMatrix = new LinkedHashMap<Integer, List<DataObject>>(); List<String> listColumnsNames = new ArrayList<String>(); if (parseInputObject.getParseType() == PARSE_TYPES.QQ) { Rp3UtilityParser.parseQqLayout(res, sc, contRow, listColumnsNames); } else { Rp3UtilityParser.parseRowColumIdxLayout( parseInputObject, sc, contRow, contCol, mapDataByCol, mapDataByRow, mapDataByMatrix, listColumnsNames); } res.setMapDataByColName(mapDataByCol); res.setMapDataByRowFieldName(mapDataByRow); res.setMapDataByRowIndex(mapDataByMatrix); } else { StatusMessage statusMessaging = new StatusMessage( Rp3Constants.CODES_MSG.STATUS_MSG_LEVEL_METHOD.toString(), "util_b_001", Arrays.asList( parseInputObject.getParseType().toString(), parseInputObject.getFileName()), 1); parseInputObject.getStatusMessagingList().add(statusMessaging); } } catch (RuntimeException e) { error = true; LOG.error("Rp3UtilityParser parse error " + e.getMessage(), e); StatusMessage statusMessaging = new StatusMessage( Rp3Constants.CODES_MSG.STATUS_MSG_LEVEL_METHOD.toString(), "util_b_002", Arrays.asList( parseInputObject.getParseType().toString(), parseInputObject.getFileName(), e.getMessage()), 2); parseInputObject.getStatusMessagingList().add(statusMessaging); } if (!error) { StatusMessage statusMessaging = new StatusMessage( Rp3Constants.CODES_MSG.STATUS_MSG_LEVEL_METHOD.toString(), "util_b_003", Arrays.asList( parseInputObject.getParseType().toString(), parseInputObject.getFileName()), 0); parseInputObject.getStatusMessagingList().add(statusMessaging); } if (LOG.isDebugEnabled()) { LOG.debug( "Rp3UtilityParser parse end parseInputObject.getStatusMessagingList() : " + parseInputObject.getStatusMessagingList()); LOG.debug( "Rp3UtilityParser parse end parseInputObject.getParseType() : " + parseInputObject.getParseType()); } return res; }