PIG-5037: Add api getDisplayString to PigStats (zjffdu)

git-svn-id: https://svn.apache.org/repos/asf/pig/trunk@1766465 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/CHANGES.txt b/CHANGES.txt
index 6478863..4051e23 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -24,6 +24,8 @@
  
 IMPROVEMENTS
 
+PIG-5037: Add api getDisplayString to PigStats (zjffdu)
+
 PIG-5020: Give file location for loadcaster related warning and errors (knoguchi)
 
 PIG-5027: Improve SAMPLE Scalar Expression Example (icook via knoguchi)
diff --git a/src/org/apache/pig/tools/pigstats/EmbeddedPigStats.java b/src/org/apache/pig/tools/pigstats/EmbeddedPigStats.java
index 45135b6..87d29c4 100644
--- a/src/org/apache/pig/tools/pigstats/EmbeddedPigStats.java
+++ b/src/org/apache/pig/tools/pigstats/EmbeddedPigStats.java
@@ -147,6 +147,11 @@
     }
 
     @Override
+    public String getDisplayString() {
+        return null;
+    }
+
+    @Override
     public long getProactiveSpillCountObjects() {
         throw new UnsupportedOperationException();
     }
diff --git a/src/org/apache/pig/tools/pigstats/EmptyPigStats.java b/src/org/apache/pig/tools/pigstats/EmptyPigStats.java
index 8151978..9e44c50 100644
--- a/src/org/apache/pig/tools/pigstats/EmptyPigStats.java
+++ b/src/org/apache/pig/tools/pigstats/EmptyPigStats.java
@@ -87,6 +87,11 @@
     }
 
     @Override
+    public String getDisplayString() {
+        return null;
+    }
+
+    @Override
     public JobGraph getJobGraph() {
        return emptyJobPlan;
     }
diff --git a/src/org/apache/pig/tools/pigstats/PigStats.java b/src/org/apache/pig/tools/pigstats/PigStats.java
index 75e561d..4f41a98 100644
--- a/src/org/apache/pig/tools/pigstats/PigStats.java
+++ b/src/org/apache/pig/tools/pigstats/PigStats.java
@@ -134,6 +134,11 @@
     }
 
     /**
+     * Returns the display message in pig grunt
+     */
+    public abstract String getDisplayString();
+
+    /**
      * Returns the DAG of jobs spawned by the script
      */
     public JobGraph getJobGraph() {
diff --git a/src/org/apache/pig/tools/pigstats/mapreduce/SimplePigStats.java b/src/org/apache/pig/tools/pigstats/mapreduce/SimplePigStats.java
index eceb8e7..e3c67aa 100644
--- a/src/org/apache/pig/tools/pigstats/mapreduce/SimplePigStats.java
+++ b/src/org/apache/pig/tools/pigstats/mapreduce/SimplePigStats.java
@@ -207,13 +207,18 @@
     }
 
     void display() {
+        LOG.info(getDisplayString());
+    }
+
+    @Override
+    public String getDisplayString() {
         if (returnCode == ReturnCode.UNKNOWN) {
             LOG.warn("unknown return code, can't display the results");
-            return;
+            return "";
         }
         if (pigContext == null) {
             LOG.warn("unknown exec type, don't display the results");
-            return;
+            return "";
         }
 
         SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
@@ -276,7 +281,7 @@
 
         sb.append("\nJob DAG:\n").append(jobPlan.toString());
 
-        LOG.info("Script Statistics: \n" + sb.toString());
+        return "Script Statistics: \n" + sb.toString();
     }
 
     void mapMROperToJob(MapReduceOper mro, Job job) {
diff --git a/src/org/apache/pig/tools/pigstats/tez/TezPigScriptStats.java b/src/org/apache/pig/tools/pigstats/tez/TezPigScriptStats.java
index a52a51a..5137390 100644
--- a/src/org/apache/pig/tools/pigstats/tez/TezPigScriptStats.java
+++ b/src/org/apache/pig/tools/pigstats/tez/TezPigScriptStats.java
@@ -117,6 +117,11 @@
     }
 
     private void display() {
+        LOG.info(getDisplayString());
+    }
+
+    @Override
+    public String getDisplayString() {
         SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT);
         StringBuilder sb = new StringBuilder();
         sb.append("\n");
@@ -170,7 +175,7 @@
         for (OutputStats os : getOutputStats()) {
             sb.append(os.getDisplayString().trim()).append("\n");
         }
-        LOG.info("Script Statistics:\n" + sb.toString());
+        return "Script Statistics:\n" + sb.toString();
     }
 
     /**