Compare commits

..

No commits in common. "4de8d3c62960013f9fafad40279df50ffc7381ad" and "3160161299c3b7158f5461973c5750c9fe35bc0f" have entirely different histories.

View file

@ -11,7 +11,6 @@ import java.nio.file.Path;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collection; import java.util.Collection;
import java.util.Objects;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import static rife.bld.operations.CompileOperation.COMPILE_OPTION_MODULE_PATH; import static rife.bld.operations.CompileOperation.COMPILE_OPTION_MODULE_PATH;
@ -89,34 +88,26 @@ public class JavacOptions extends ArrayList<String> {
return collection != null && !collection.isEmpty(); return collection != null && !collection.isEmpty();
} }
/**
* Helper method to add delimited options
*/
private JavacOptions addDelimitedOption(String option, Collection<String> values, String separator) {
if (isNotEmpty(values)) {
var joined = values.stream()
.filter(Objects::nonNull)
.collect(Collectors.joining(separator));
if (!joined.isEmpty()) {
add(option);
add(joined);
}
}
return this;
}
/** /**
* Helper method to add path-based options * Helper method to add path-based options
*/ */
private JavacOptions addPathOption(String option, Collection<String> paths) { private JavacOptions addPathOption(String option, Collection<String> paths) {
return addDelimitedOption(option, paths, File.pathSeparator); if (isNotEmpty(paths)) {
add(option);
add(String.join(File.pathSeparator, paths));
}
return this;
} }
/** /**
* Helper method to add comma-separated options * Helper method to add comma-separated options
*/ */
private JavacOptions addCommaSeparatedOption(String option, Collection<String> values) { private JavacOptions addCommaSeparatedOption(String option, Collection<String> values) {
return addDelimitedOption(option, values, ","); if (isNotEmpty(values)) {
add(option);
add(String.join(",", values));
}
return this;
} }
/** /**
@ -154,10 +145,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions addExports(Collection<String> modules) { public JavacOptions addExports(Collection<String> modules) {
if (isNotEmpty(modules)) { return addCommaSeparatedOption("--add-exports", modules);
return addCommaSeparatedOption("--add-exports", modules);
}
return this;
} }
/** /**
@ -180,10 +168,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions addReads(Collection<String> modules) { public JavacOptions addReads(Collection<String> modules) {
if (isNotEmpty(modules)) { return addCommaSeparatedOption("--add-reads", modules);
return addCommaSeparatedOption("--add-reads", modules);
}
return this;
} }
/** /**
@ -208,10 +193,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.5.18 * @since 1.5.18
*/ */
public JavacOptions addModules(Collection<String> modules) { public JavacOptions addModules(Collection<String> modules) {
if (isNotEmpty(modules)) { return addCommaSeparatedOption("--add-modules", modules);
return addCommaSeparatedOption("--add-modules", modules);
}
return this;
} }
/** /**
@ -281,10 +263,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.5.18 * @since 1.5.18
*/ */
public JavacOptions endorsedDirs(Collection<File> dirs) { public JavacOptions endorsedDirs(Collection<File> dirs) {
if (isNotEmpty(dirs)) { return endorsedDirsStrings(dirs.stream().map(File::getAbsolutePath).toList());
return endorsedDirsStrings(dirs.stream().map(File::getAbsolutePath).toList());
}
return this;
} }
/** /**
@ -307,10 +286,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.1 * @since 2.1
*/ */
public JavacOptions endorsedDirsPaths(Collection<Path> dirs) { public JavacOptions endorsedDirsPaths(Collection<Path> dirs) {
if (isNotEmpty(dirs)) { return endorsedDirs(dirs.stream().map(Path::toFile).toList());
return endorsedDirs(dirs.stream().map(Path::toFile).toList());
}
return this;
} }
/** /**
@ -333,7 +309,11 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.1 * @since 2.1
*/ */
public JavacOptions endorsedDirsStrings(Collection<String> dirs) { public JavacOptions endorsedDirsStrings(Collection<String> dirs) {
return addCommaSeparatedOption("-endorseddirs", dirs); if (isNotEmpty(dirs)) {
add("-endorseddirs");
add(String.join(",", dirs));
}
return this;
} }
/** /**
@ -356,10 +336,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.5.18 * @since 1.5.18
*/ */
public JavacOptions extDirs(Collection<File> dirs) { public JavacOptions extDirs(Collection<File> dirs) {
if (isNotEmpty(dirs)) { return extDirsStrings(dirs.stream().map(File::getAbsolutePath).toList());
return extDirsStrings(dirs.stream().map(File::getAbsolutePath).toList());
}
return this;
} }
/** /**
@ -382,10 +359,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.1 * @since 2.1
*/ */
public JavacOptions extDirsPaths(Collection<Path> dirs) { public JavacOptions extDirsPaths(Collection<Path> dirs) {
if (isNotEmpty(dirs)) { return extDirs(dirs.stream().map(Path::toFile).toList());
return extDirs(dirs.stream().map(Path::toFile).toList());
}
return this;
} }
/** /**
@ -408,7 +382,11 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.1 * @since 2.1
*/ */
public JavacOptions extDirsStrings(Collection<String> dirs) { public JavacOptions extDirsStrings(Collection<String> dirs) {
return addCommaSeparatedOption("-extdirs", dirs); if (isNotEmpty(dirs)) {
add("-extdirs");
add(String.join(",", dirs));
}
return this;
} }
/** /**
@ -548,10 +526,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.5.18 * @since 1.5.18
*/ */
public JavacOptions limitModules(Collection<String> modules) { public JavacOptions limitModules(Collection<String> modules) {
if (isNotEmpty(modules)) { return addCommaSeparatedOption("--limit-modules", modules);
return addCommaSeparatedOption("--limit-modules", modules);
}
return this;
} }
/** /**
@ -574,10 +549,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.5.18 * @since 1.5.18
*/ */
public JavacOptions module(Collection<String> modules) { public JavacOptions module(Collection<String> modules) {
if (isNotEmpty(modules)) { return addCommaSeparatedOption("--module", modules);
return addCommaSeparatedOption("--module", modules);
}
return this;
} }
/** /**
@ -601,10 +573,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.6.2 * @since 1.6.2
*/ */
public JavacOptions modulePath(Collection<File> paths) { public JavacOptions modulePath(Collection<File> paths) {
if (isNotEmpty(paths)) { return modulePathStrings(paths.stream().map(File::getAbsolutePath).toList());
return modulePathStrings(paths.stream().map(File::getAbsolutePath).toList());
}
return this;
} }
/** /**
@ -627,10 +596,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.1 * @since 2.1
*/ */
public JavacOptions modulePathPaths(Collection<Path> paths) { public JavacOptions modulePathPaths(Collection<Path> paths) {
if (isNotEmpty(paths)) { return modulePathStrings(paths.stream().map(Path::toString).toList());
return modulePathStrings(paths.stream().map(Path::toString).toList());
}
return this;
} }
/** /**
@ -653,10 +619,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.1 * @since 2.1
*/ */
public JavacOptions modulePathStrings(Collection<String> paths) { public JavacOptions modulePathStrings(Collection<String> paths) {
if (isNotEmpty(paths)) { return addPathOption(COMPILE_OPTION_MODULE_PATH, paths);
return addPathOption(COMPILE_OPTION_MODULE_PATH, paths);
}
return this;
} }
/** /**
@ -666,10 +629,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions moduleSourcePathStrings(Collection<String> paths) { public JavacOptions moduleSourcePathStrings(Collection<String> paths) {
if (isNotEmpty(paths)) { return addPathOption("--module-source-path", paths);
return addPathOption("--module-source-path", paths);
}
return this;
} }
/** /**
@ -679,10 +639,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions moduleSourcePathPaths(Collection<Path> paths) { public JavacOptions moduleSourcePathPaths(Collection<Path> paths) {
if (isNotEmpty(paths)) { return moduleSourcePathStrings(paths.stream().map(Path::toString).toList());
return moduleSourcePathStrings(paths.stream().map(Path::toString).toList());
}
return this;
} }
/** /**
@ -692,10 +649,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions moduleSourcePath(Collection<File> paths) { public JavacOptions moduleSourcePath(Collection<File> paths) {
if (isNotEmpty(paths)) { return moduleSourcePathStrings(paths.stream().map(File::getPath).toList());
return moduleSourcePathStrings(paths.stream().map(File::getPath).toList());
}
return this;
} }
/** /**
@ -802,10 +756,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 1.5.18 * @since 1.5.18
*/ */
public JavacOptions processors(Collection<String> classnames) { public JavacOptions processors(Collection<String> classnames) {
if (isNotEmpty(classnames)) { return addCommaSeparatedOption("-processor", classnames);
return addCommaSeparatedOption("-processor", classnames);
}
return this;
} }
/** /**
@ -854,10 +805,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions processorModulePathPaths(Collection<Path> paths) { public JavacOptions processorModulePathPaths(Collection<Path> paths) {
if (isNotEmpty(paths)) { return processorModulePathStrings(paths.stream().map(Path::toString).toList());
return processorModulePathStrings(paths.stream().map(Path::toString).toList());
}
return this;
} }
/** /**
@ -867,10 +815,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions processorModulePathStrings(Collection<String> paths) { public JavacOptions processorModulePathStrings(Collection<String> paths) {
if (isNotEmpty(paths)) { return addPathOption("--processor-module-path", paths);
return addPathOption("--processor-module-path", paths);
}
return this;
} }
/** /**
@ -880,10 +825,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions processorModulePath(Collection<File> paths) { public JavacOptions processorModulePath(Collection<File> paths) {
if (isNotEmpty(paths)) { return processorModulePathStrings(paths.stream().map(File::getAbsolutePath).toList());
return processorModulePathStrings(paths.stream().map(File::getAbsolutePath).toList());
}
return this;
} }
/** /**
@ -932,10 +874,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions processorPathStrings(Collection<String> paths) { public JavacOptions processorPathStrings(Collection<String> paths) {
if (isNotEmpty(paths)) { return addPathOption("--processor-path", paths);
return addPathOption("--processor-path", paths);
}
return this;
} }
/** /**
@ -945,10 +884,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions processorPath(Collection<File> paths) { public JavacOptions processorPath(Collection<File> paths) {
if (isNotEmpty(paths)) { return processorPathStrings(paths.stream().map(File::getAbsolutePath).toList());
return processorPathStrings(paths.stream().map(File::getAbsolutePath).toList());
}
return this;
} }
/** /**
@ -958,10 +894,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions processorPathPaths(Collection<Path> paths) { public JavacOptions processorPathPaths(Collection<Path> paths) {
if (isNotEmpty(paths)) { return processorPathStrings(paths.stream().map(Path::toString).toList());
return processorPathStrings(paths.stream().map(Path::toString).toList());
}
return this;
} }
/** /**
@ -1069,10 +1002,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions upgradeModulePathStrings(Collection<String> paths) { public JavacOptions upgradeModulePathStrings(Collection<String> paths) {
if (isNotEmpty(paths)) { return addPathOption("--upgrade-module-path", paths);
return addPathOption("--upgrade-module-path", paths);
}
return this;
} }
/** /**
@ -1082,10 +1012,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions upgradeModulePath(Collection<File> paths) { public JavacOptions upgradeModulePath(Collection<File> paths) {
if (isNotEmpty(paths)) { return upgradeModulePathStrings(paths.stream().map(File::getAbsolutePath).toList());
return upgradeModulePathStrings(paths.stream().map(File::getAbsolutePath).toList());
}
return this;
} }
/** /**
@ -1095,10 +1022,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions upgradeModulePathPaths(Collection<Path> paths) { public JavacOptions upgradeModulePathPaths(Collection<Path> paths) {
if (isNotEmpty(paths)) { return upgradeModulePathStrings(paths.stream().map(Path::toString).toList());
return upgradeModulePathStrings(paths.stream().map(Path::toString).toList());
}
return this;
} }
/** /**
@ -1143,10 +1067,7 @@ public class JavacOptions extends ArrayList<String> {
* @since 2.3.1 * @since 2.3.1
*/ */
public JavacOptions xLint(Collection<XLintKey> keys) { public JavacOptions xLint(Collection<XLintKey> keys) {
if (isNotEmpty(keys)) { return addXLintOption(keys, "");
return addXLintOption(keys, "");
}
return this;
} }
/** /**