src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsFilter.java
changeset 52650 c16b6cc93272
parent 47216 71c04702a3d5
--- a/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsFilter.java	Wed Nov 21 22:33:33 2018 -0800
+++ b/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsFilter.java	Wed Nov 21 22:34:01 2018 -0800
@@ -55,6 +55,7 @@
     private final boolean filterSamePackage;
     private final boolean filterSameArchive;
     private final boolean findJDKInternals;
+    private final boolean findMissingDeps;
     private final Pattern includePattern;
 
     private final Set<String> requires;
@@ -64,6 +65,7 @@
                         boolean filterSamePackage,
                         boolean filterSameArchive,
                         boolean findJDKInternals,
+                        boolean findMissingDeps,
                         Pattern includePattern,
                         Set<String> requires) {
         this.filter = filter;
@@ -71,6 +73,7 @@
         this.filterSamePackage = filterSamePackage;
         this.filterSameArchive = filterSameArchive;
         this.findJDKInternals = findJDKInternals;
+        this.findMissingDeps = findMissingDeps;
         this.includePattern = includePattern;
         this.requires = requires;
     }
@@ -153,6 +156,8 @@
             Module module = targetArchive.getModule();
             return originArchive != targetArchive &&
                     isJDKInternalPackage(module, target.getPackageName());
+        } else if (findMissingDeps) {
+            return Analyzer.notFound(targetArchive);
         } else if (filterSameArchive) {
             // accepts origin and target that from different archive
             return originArchive != targetArchive;
@@ -188,6 +193,7 @@
         boolean filterSamePackage;
         boolean filterSameArchive;
         boolean findJDKInterals;
+        boolean findMissingDeps;
         // source filters
         Pattern includePattern;
         Set<String> requires = new HashSet<>();
@@ -221,6 +227,10 @@
             this.findJDKInterals = value;
             return this;
         }
+        public Builder findMissingDeps(boolean value) {
+            this.findMissingDeps = value;
+            return this;
+        }
         public Builder includePattern(Pattern regex) {
             this.includePattern = regex;
             return this;
@@ -238,6 +248,7 @@
                                    filterSamePackage,
                                    filterSameArchive,
                                    findJDKInterals,
+                                   findMissingDeps,
                                    includePattern,
                                    requires);
         }