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();
   }