src/share/classes/org/openjdk/jigsaw/cli/Commands.java

Print this page

        

@@ -41,11 +41,11 @@
  * Commands shared by multiple CLIs
  */
 
 class Commands {
 
-    private static JigsawModuleSystem jms
+    private static final JigsawModuleSystem jms
         = JigsawModuleSystem.instance();
 
     private static void formatCommaList(PrintStream out,
                                         String prefix,
                                         Collection<?> list)

@@ -87,37 +87,16 @@
                 out.format("  %s  %s%n", indent, pn);
             }
         }
     }
     
-    private static void listCommand(Catalog cat, ModuleIdQuery midq,
-                                    boolean parents, boolean verbose)
-        throws Command.Exception
+    protected static void formatModule(PrintStream out, ModuleInfo mi,
+                                       boolean verbose)
     {
-        int n = 0;
-        try {
-            List<ModuleId> mids;
-            if (midq == null) {
-                mids = parents ? cat.listDeclaringModuleIds() : cat.listLocalDeclaringModuleIds();
-            } else { 
-                List<ModuleId> list = parents ? cat.listModuleIds()
-                                              : cat.listLocalModuleIds();
-                mids = new ArrayList<>();
-                for (ModuleId mid : list) {
-                    if (midq.matches(mid))
-                        mids.add(mid);
-                }
-            }
-            for (ModuleId mid : mids) {
-                ModuleInfo mi = cat.readModuleInfo(mid);
-                if (verbose) {
-                    out.format("%n");
-                }
-
                 // print module and its views
                 out.format("%s%n", mi.id());
-                n++;
+
                 if (verbose) {
                     for (ViewDependence d : mi.requiresModules()) {
                         out.format("  %s%n", d);
                     }
                     for (ServiceDependence sd: mi.requiresServices()) {

@@ -132,10 +111,36 @@
                         out.format("  view %s%n", mv.id().name());
                         formatModuleView(out, mv, "  ");
                     }
                 }
             }
+
+    private static void listCommand(Catalog cat, ModuleIdQuery midq,
+                                    boolean parents, boolean verbose)
+        throws Command.Exception
+    {
+        int n = 0;
+        try {
+            List<ModuleId> mids;
+            if (midq == null) {
+                mids = parents ? cat.listDeclaringModuleIds()
+                               : cat.listLocalDeclaringModuleIds();
+            } else {
+                List<ModuleId> list = parents ? cat.listModuleIds()
+                                              : cat.listLocalModuleIds();
+                mids = new ArrayList<>();
+                for (ModuleId mid : list) {
+                    if (midq.matches(mid))
+                        mids.add(mid);
+                }
+            }
+            for (ModuleId mid : mids) {
+                if (verbose)
+                    out.format("%n");
+                formatModule(out, cat.readModuleInfo(mid), verbose);
+                n++;
+            }
         } catch (IOException x) {
             throw new Command.Exception(x);
         }
         if (verbose && n > 0)
             out.format("%n");