Change compile_one_filetype to account for many types

RELNOTES:none
PiperOrigin-RevId: 396835954
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
index e906ba1..5df7521 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
+++ b/src/main/java/com/google/devtools/build/lib/analysis/starlark/StarlarkRuleClassFunctions.java
@@ -460,12 +460,15 @@
       builder.addExecutionPlatformConstraints(parseExecCompatibleWith(execCompatibleWith, thread));
     }
 
-    if (compileOneFiletype instanceof String) {
+    if (compileOneFiletype instanceof Sequence) {
       if (!bzlModule.label().getRepository().getName().equals("@_builtins")) {
         throw Starlark.errorf(
             "Rule in '%s' cannot use private API", bzlModule.label().getPackageName());
       }
-      builder.setPreferredDependencyPredicate(FileType.of((String) compileOneFiletype));
+      ImmutableList<String> filesTypes =
+          Sequence.cast(compileOneFiletype, String.class, "compile_one_filetype")
+              .getImmutableList();
+      builder.setPreferredDependencyPredicate(FileType.of(filesTypes));
     }
 
     StarlarkRuleFunction starlarkRuleFunction =
diff --git a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java
index a5864da..37417f1 100644
--- a/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java
+++ b/src/main/java/com/google/devtools/build/lib/starlarkbuildapi/StarlarkRuleFunctionsApi.java
@@ -344,7 +344,7 @@
             name = "compile_one_filetype",
             defaultValue = "None",
             allowedTypes = {
-              @ParamType(type = String.class),
+              @ParamType(type = Sequence.class, generic1 = String.class),
               @ParamType(type = NoneType.class),
             },
             named = true,
diff --git a/src/main/starlark/builtins_bzl/common/java/java_library.bzl b/src/main/starlark/builtins_bzl/common/java/java_library.bzl
index b927112..1a928a6 100644
--- a/src/main/starlark/builtins_bzl/common/java/java_library.bzl
+++ b/src/main/starlark/builtins_bzl/common/java/java_library.bzl
@@ -69,5 +69,5 @@
         "classjar": "lib%{name}.jar",
         "sourcejar": "lib%{name}-src.jar",
     },
-    compile_one_filetype = ".java",
+    compile_one_filetype = [".java"],
 )