langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java
changeset 41451 a847c7aa25a7
parent 41448 6689bce0cd65
--- a/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java	Tue Oct 11 00:28:49 2016 +0900
+++ b/langtools/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/Main.java	Mon Oct 10 06:47:47 2016 -0700
@@ -60,7 +60,7 @@
      */
     public static int execute(String... args) {
         Start jdoc = new Start();
-        return jdoc.begin(args);
+        return jdoc.begin(args).exitCode;
     }
 
     /**
@@ -72,7 +72,7 @@
      */
     public static int execute(String[] args, PrintWriter writer) {
         Start jdoc = new Start(writer, writer);
-        return jdoc.begin(args);
+        return jdoc.begin(args).exitCode;
     }
 
     /**
@@ -85,6 +85,36 @@
      */
     public static int execute(String[] args, PrintWriter outWriter, PrintWriter errWriter) {
         Start jdoc = new Start(outWriter, errWriter);
-        return jdoc.begin(args);
+        return jdoc.begin(args).exitCode;
+    }
+
+    public static enum Result {
+        /** completed with no errors */
+        OK(0),
+        /** Completed with reported errors */
+        ERROR(1),
+        /** Bad command-line arguments */
+        CMDERR(2),
+        /** System error or resource exhaustion */
+        SYSERR(3),
+        /** Terminated abnormally */
+        ABNORMAL(4);
+
+        private static final long serialVersionUID = 1L;
+
+        Result(int exitCode) {
+            this.exitCode = exitCode;
+        }
+
+        public boolean isOK() {
+            return (exitCode == 0);
+        }
+
+        public final int exitCode;
+
+        @Override
+        public String toString() {
+            return name() + '(' + exitCode + ')';
+        }
     }
 }