List getCommandList()

in src/main/java/org/apache/sling/pipes/internal/CommandExecutorImpl.java [167:201]


    List<String> getCommandList(SlingHttpServletRequest request, Map<String, Object> bindings) throws IOException {
        List<String> cmds = new ArrayList<>();
        if (request.getParameterMap().containsKey(REQ_PARAM_CMD)) {
            cmds.add(request.getParameter(REQ_PARAM_CMD));
        } else {
            RequestParameter paramFile = request.getRequestParameter(REQ_PARAM_FILE);
            if (paramFile != null) {
                InputStream is = paramFile.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(is, StandardCharsets.UTF_8));
                String line;
                String currentBinding = null;
                StringBuilder readerBuilder = new StringBuilder();
                while ((line = reader.readLine()) != null) {
                    if (isBlankLine(line)) {
                        if (readerBuilder.length() > 0) {
                            handleInputEnd(readerBuilder, currentBinding, cmds, bindings);
                            readerBuilder = new StringBuilder();
                            currentBinding = null;
                        }
                    }  else if (isJsonBinding(line)) {
                        Matcher matcher = DECL_BINDING_PATTERN.matcher(line);
                        if (matcher.find()) {
                            currentBinding = matcher.group(DECL_BINDING);
                            readerBuilder.append(matcher.group(DECL_BINDING_CONTENT).trim());
                        }
                    } else {
                        //depending on what we are appending, we keep lines return or not
                        readerBuilder.append((StringUtils.isBlank(currentBinding) ? LINE_SEPARATOR : "\n") + line.trim());
                    }
                }
                handleInputEnd(readerBuilder, currentBinding, cmds, bindings);
            }
        }
        return cmds;
    }