From 7a419ed19751ea67d6b08ca22fbf94655c8a59a7 Mon Sep 17 00:00:00 2001 From: "Erik C. Thauvin" Date: Sun, 28 Dec 2025 00:49:19 -0800 Subject: [PATCH] Add support for `-Xlint` options in JavacOptions --- .../rife/bld/operations/JavacOptions.java | 95 +++++++++++++++++++ 1 file changed, 95 insertions(+) diff --git a/src/main/java/rife/bld/operations/JavacOptions.java b/src/main/java/rife/bld/operations/JavacOptions.java index 2bc81d9..8338fa2 100644 --- a/src/main/java/rife/bld/operations/JavacOptions.java +++ b/src/main/java/rife/bld/operations/JavacOptions.java @@ -35,6 +35,49 @@ public class JavacOptions extends ArrayList { FULL, NONE, ONLY } + public enum XLintKey { + ALL, + AUXILIARYCLASS, + CAST, + CLASSFILE, + DANGLING_DOC_COMMENTS, + DEP_ANN, + DEPRECATION, + DIVZERO, + EMPTY, + EXPORTS, + FALLTHROUGH, + FINALLY, + IDENTITY, + INCUBATING, + LOSSY_CONVERSIONS, + MISSING_EXPLICIT_CTOR, + MODULE, + NONE, + OPENS, + OPTIONS, + OUTPUT_FILE_CLASH, + OVERLOADS, + OVERRIDES, + PATH, + PREVIEW, + PROCESSING, + RAWTYPES, + REMOVAL, + REQUIRES_AUTOMATIC, + REQUIRES_TRANSITIVE_AUTOMATIC, + RESTRICTED, + SERIAL, + STATIC, + STRICTFP, + SYNCHRONIZATION, + TEXT_BLOCKS, + THIS_ESCAPE, + TRY, + UNCHECKED, + VARARGS + } + /** * Option to pass to annotation processors * @@ -776,4 +819,56 @@ public class JavacOptions extends ArrayList { add("-Werror"); return this; } + + /** + * Enable recommended warning categories + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions xLint() { + add("-Xlint"); + return this; + } + + /** + * Warning categories to enable + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions xLint(XLintKey... keys) { + return xLint(Arrays.asList(keys)); + } + + /** + * Warning categories to enable + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions xLint(List keys) { + add("-Xlint:" + StringUtils.join(keys, ",").replaceAll("_", "-").toLowerCase()); + return this; + } + + /** + * Warning categories to disable + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions xLintDisable(XLintKey... keys) { + return xLintDisable(Arrays.asList(keys)); + } + /** + * Warning categories to disable + * + * @return this list of options + * @since 2.3.1 + */ + public JavacOptions xLintDisable(List keys) { + add("-Xlint:-" + StringUtils.join(keys, ",-").replaceAll("_", "-").toLowerCase()); + return this; + } } \ No newline at end of file