Refactor java_libary.deps rule kind validation

PiperOrigin-RevId: 249897560
diff --git a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
index bdf0bef..1cdb9c7 100644
--- a/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/bazel/rules/java/BazelJavaSemantics.java
@@ -824,4 +824,7 @@
   public boolean isJavaProtoLibraryStrictDeps(RuleContext ruleContext) {
     return false;
   }
+
+  @Override
+  public void checkDependencyRuleKinds(RuleContext ruleContext) {}
 }
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
index b95fa9f..dc85bdb 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaLibrary.java
@@ -53,6 +53,7 @@
       boolean includeGeneratedExtensionRegistry,
       boolean isJavaPluginRule)
       throws InterruptedException, RuleErrorException, ActionConflictException {
+    semantics.checkDependencyRuleKinds(ruleContext);
     JavaTargetAttributes.Builder attributesBuilder = common.initCommon();
 
     // Collect the transitive dependencies.
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
index 9311390..e7e816f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSemantics.java
@@ -462,4 +462,6 @@
    * even if the java_proto_library rule sets strict_deps = 0.
    */
   boolean isJavaProtoLibraryStrictDeps(RuleContext ruleContext);
+
+  void checkDependencyRuleKinds(RuleContext ruleContext);
 }