public static List commandLineParameters()

in extra/java.debugjavac/src/main/java/org/netbeans/modules/java/debugjavac/Utilities.java [37:108]


    public static List<String> commandLineParameters(FileObject source, String extraParameters) throws IOException {
        List<String> extraParams = new ArrayList<>();
        Set<String> extraParamsSet = new HashSet<>();
        StringBuilder param = new StringBuilder();
        char currentQuote = '\0';
        for (char c : extraParameters.toCharArray()) {
            switch (c) {
                case '\r': continue;
                case  ' ': case '\n': case '\t':
                    if (currentQuote == '\0') {
                        String p = param.toString();
                        param.delete(0, param.length());
                        extraParams.add(p);
                        extraParamsSet.add(p);
                        continue;
                    }
                    break;
                case '"':
                    if (currentQuote == '"') {
                        currentQuote = '\0';
                        continue;
                    } else if (currentQuote == '\0') {
                        currentQuote = '"';
                        continue;
                    }
                    break;
                case '\'':
                    if (currentQuote == '\'') {
                        currentQuote = '\0';
                        continue;
                    } else if (currentQuote == '\0') {
                        currentQuote = '\'';
                        continue;
                    }
                    break;
            }

            param.append(c);
        }
        if (param.length() > 0) {
            String p = param.toString();
            extraParams.add(p);
            extraParamsSet.add(p);
        }
        List<String> result = new ArrayList<>();
//        if (!extraParamsSet.contains("-bootclasspath")) {
//            ClassPath boot = ClassPath.getClassPath(source, ClassPath.BOOT);
//            if (boot == null) boot = JavaPlatform.getDefault().getBootstrapLibraries();
//            result.add("-bootclasspath");
//            result.add(boot.toString(PathConversionMode.PRINT));
//        }
        if (!extraParamsSet.contains("-classpath")) {
            ClassPath compile = ClassPath.getClassPath(source, ClassPath.COMPILE);
            if (compile == null) compile = ClassPath.EMPTY;
            result.add("-classpath");
            result.add(compile.toString(PathConversionMode.PRINT));
        }
        String sourceLevel = SourceLevelQuery.getSourceLevel(source);
        sourceLevel = sourceLevel != null ? sourceLevel : "1.8";
        if (!extraParamsSet.contains("-source")) {
            result.add("-source");
            result.add(sourceLevel);
        }
        if (!extraParamsSet.contains("-target")) {
            result.add("-target");
            result.add(sourceLevel);
        }

        result.addAll(extraParams);
        
        return result;
    }