getConstraints api so that we can do validation on the JavaInfo instead of
doing it with an aspects as we do today with Kotlin/Android
PiperOrigin-RevId: 334834410
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java
index 6434491..ebc2b65 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaStarlarkCommon.java
@@ -29,6 +29,7 @@
import net.starlark.java.eval.EvalException;
import net.starlark.java.eval.Sequence;
import net.starlark.java.eval.Starlark;
+import net.starlark.java.eval.StarlarkList;
import net.starlark.java.eval.StarlarkThread;
/** A module that contains Starlark utilities for Java support. */
@@ -215,6 +216,13 @@
}
@Override
+ public Sequence<String> getConstraints(JavaInfo javaInfo) {
+ // No implementation in Bazel. This method not callable in Starlark except through
+ // (discouraged) use of --experimental_google_legacy_api.
+ return StarlarkList.empty();
+ }
+
+ @Override
public JavaInfo removeAnnotationProcessors(JavaInfo javaInfo) {
// No implementation in Bazel. This method not callable in Starlark except through
// (discouraged) use of --experimental_google_legacy_api.
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaCommonApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaCommonApi.java
index c139273..efb5aa6 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaCommonApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/java/JavaCommonApi.java
@@ -510,6 +510,20 @@
throws EvalException;
@StarlarkMethod(
+ name = "get_constraints",
+ doc = "Returns a set of constraints added.",
+ parameters = {
+ @Param(
+ name = "java_info",
+ positional = true,
+ named = false,
+ type = JavaInfoApi.class,
+ doc = "The JavaInfo to get constraints from."),
+ },
+ enableOnlyWithFlag = BuildLanguageOptions.EXPERIMENTAL_GOOGLE_LEGACY_API)
+ Sequence<String> getConstraints(JavaInfoT javaInfo);
+
+ @StarlarkMethod(
name = "experimental_disable_annotation_processing",
doc =
"Returns a copy of the given JavaInfo with any provided annotation processors disabled."
diff --git a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java
index 59cb175..8a424a6 100644
--- a/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java
+++ b/src/main/java/com/google/devtools/build/skydoc/fakebuildapi/java/FakeJavaCommon.java
@@ -27,6 +27,7 @@
import com.google.devtools.build.skydoc.fakebuildapi.FakeProviderApi;
import net.starlark.java.eval.EvalException;
import net.starlark.java.eval.Sequence;
+import net.starlark.java.eval.StarlarkList;
import net.starlark.java.eval.StarlarkThread;
/** Fake implementation of {@link JavaCommonApi}. */
@@ -143,6 +144,11 @@
}
@Override
+ public Sequence<String> getConstraints(FakeJavaInfo javaInfo) {
+ return StarlarkList.empty();
+ }
+
+ @Override
public FakeJavaInfo removeAnnotationProcessors(FakeJavaInfo javaInfo) {
return new FakeJavaInfo();
}