private int loadFeeder()

in wilma-functionaltest/src/main/java/com/epam/gepard/datadriven/feeders/LabelBasedDataFeeder.java [314:362]


    private int loadFeeder(final LabelBasedFeederDetails feederDetails) throws DataFeederException {
        int result = 0;
        // convert feeder file parameter into existing path
        LabelBasedFeederFileLoader loaderType = LabelBasedFeederFileLoader.TXT;
        String filePath = detectFilePath(feederDetails);
        if (filePath.endsWith(".csv")) {
            loaderType = LabelBasedFeederFileLoader.CSV;
        }
        feederDetails.setFeederFile(filePath);

        // Select the required value
        try {
            // load feeder
            loaderType.loadFeeder(feederDetails);
        } catch (IOException e) {
            String errorText = "Error reading LabelBasedDataFeeder: " + feederDetails.getFeederFile() + "\nfilePath: " + filePath;
            throw new DataFeederException(errorText, ERROR_FEEDER_FILE_MISSING);
        }

        // if feeder label type is random, then shuffle parameter rows
        if (LabelBasedFeederDetails.LabelType.RANDOM.equals(feederDetails.getLabelType())) {
            Collections.shuffle(feederDetails.getParameterList());
            feederDetails.reduceParameterList();
        }

        // if feeder label type is merge, then append the specified parameters in a row to a string
        if (LabelBasedFeederDetails.LabelType.MERGE.equals(feederDetails.getLabelType())) {
            String[] merged = new String[feederDetails.getParameterList().get(0).length];
            Arrays.fill(merged, "");

            for (int rowNum = 0; rowNum < feederDetails.getParameterList().size(); rowNum++) {
                for (int colNum = 0; colNum < merged.length; colNum++) {
                    merged[colNum] += (rowNum == 0) ? feederDetails.getParameterList().get(rowNum)[colNum] : ","
                            + feederDetails.getParameterList().get(rowNum)[colNum];
                }
            }

            feederDetails.getParameterList().clear();
            feederDetails.getParameterList().add(merged);
        }

        if (feederDetails.getParameterList().isEmpty()) {
            result = ERROR_FEEDER_RELATION_NO_ROW_LOADED;
            DataFeederLoader.reportError("Error reading LabelBasedDataFeeder - No rows loaded by the feeder: " + feederDetails.getFeederFile()
                    + "\nfilePath: " + filePath);
        }

        return result;
    }