Fail when a module depends on a disabled module

Copy the logic from cc.go to fail when a module depends on a disabled
module.  A future change will refactor this to remove the duplication
and cover all other module types.

Test: m TARGET_BUILD_PDK=true doesn't panic
Bug: 67663308
Change-Id: Iab2b142cebdbd74df934e4733f0de83bd3334d86
diff --git a/java/java.go b/java/java.go
index 8941b4d..c12ada2 100644
--- a/java/java.go
+++ b/java/java.go
@@ -410,6 +410,21 @@
 		otherName := ctx.OtherModuleName(module)
 		tag := ctx.OtherModuleDependencyTag(module)
 
+		aDep, _ := module.(android.Module)
+		if aDep == nil {
+			ctx.ModuleErrorf("module %q not an android module", ctx.OtherModuleName(aDep))
+			return
+		}
+
+		if !aDep.Enabled() {
+			if ctx.AConfig().AllowMissingDependencies() {
+				ctx.AddMissingDependencies([]string{ctx.OtherModuleName(aDep)})
+			} else {
+				ctx.ModuleErrorf("depends on disabled module %q", ctx.OtherModuleName(aDep))
+			}
+			return
+		}
+
 		dep, _ := module.(Dependency)
 		if dep == nil {
 			switch tag {