public UsageReport parseAccountingDataFromStdOut()

in src/main/java/com/epam/grid/engine/provider/utils/sge/usage/SgeSummaryFilteredAccountingDataParser.java [52:70]


    public UsageReport parseAccountingDataFromStdOut(final List<String> stdOut) {
        final SgeUsageRawOutput sgeUsageRawOutput = parseSgeAccountingOutput(stdOut);

        final EnumMap<SgeAccountingHeaders, String> accountingMap = new EnumMap<>(SgeAccountingHeaders.class);
        final String valuesLine = Optional.ofNullable(sgeUsageRawOutput.getAccountingData()).orElse(EMPTY_STRING);

        final List<String> headers = getHeaders(sgeUsageRawOutput);
        try {
            final String[] acctValues = parseResultValues(headers, valuesLine);
            for (int i = 0; i < headers.size(); i++) {
                accountingMap.put(SgeAccountingHeaders.valueOfName(headers.get(i))
                        .orElseThrow(IllegalArgumentException::new), acctValues[i]
                );
            }
        } catch (ArrayIndexOutOfBoundsException | IllegalArgumentException e) {
            throw new GridEngineException(HttpStatus.NOT_FOUND, "Cannot parse SGE output", e);
        }
        return buildFilteredUsageReportFromMap(headers, accountingMap);
    }