Repository: incubator-systemml
Updated Branches:
  refs/heads/master 75b993759 -> c36229012


[SYSTEMML-1165] Setup method for ScriptExecutor execution

Create setup method to perform basic setup operations for ScriptExecutor.
This simplifies specifying a custom execution when subclassing ScriptExecutor,
since an overridden execute method can call the setup method as its
first step.

Closes #332.


Project: http://git-wip-us.apache.org/repos/asf/incubator-systemml/repo
Commit: 
http://git-wip-us.apache.org/repos/asf/incubator-systemml/commit/c3622901
Tree: http://git-wip-us.apache.org/repos/asf/incubator-systemml/tree/c3622901
Diff: http://git-wip-us.apache.org/repos/asf/incubator-systemml/diff/c3622901

Branch: refs/heads/master
Commit: c362290123d2659e2306b19e563740cb3200a333
Parents: 75b9937
Author: Deron Eriksson <[email protected]>
Authored: Fri Jan 6 17:45:35 2017 -0800
Committer: Deron Eriksson <[email protected]>
Committed: Fri Jan 6 17:45:35 2017 -0800

----------------------------------------------------------------------
 .../sysml/api/mlcontext/ScriptExecutor.java     | 25 +++++++++++++++-----
 1 file changed, 19 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/c3622901/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java 
b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
index 791557a..7f80267 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/ScriptExecutor.java
@@ -275,6 +275,7 @@ public class ScriptExecutor {
         * primary methods:
         * 
         * <ol>
+        * <li>{@link #setup(Script)}</li>
         * <li>{@link #parseScript()}</li>
         * <li>{@link #liveVariableAnalysis()}</li>
         * <li>{@link #validateScript()}</li>
@@ -298,14 +299,9 @@ public class ScriptExecutor {
         * @return the results as a MLResults object
         */
        public MLResults execute(Script script) {
-               this.script = script;
-               checkScriptHasTypeAndString();
-               script.setScriptExecutor(this);
-               setScriptStringInSparkMonitor();
-               // Set global variable indicating the script type
-               DMLScript.SCRIPT_TYPE = script.getScriptType();
 
                // main steps in script execution
+               setup(script);
                parseScript();
                liveVariableAnalysis();
                validateScript();
@@ -336,6 +332,23 @@ public class ScriptExecutor {
        }
 
        /**
+        * Sets the script in the ScriptExecutor, checks that the script has a 
type
+        * and string, sets the ScriptExecutor in the script, sets the script 
string
+        * in the Spark Monitor, and globally sets the script type.
+        * 
+        * @param script
+        *            the DML or PYDML script to execute
+        */
+       protected void setup(Script script) {
+               this.script = script;
+               checkScriptHasTypeAndString();
+               script.setScriptExecutor(this);
+               setScriptStringInSparkMonitor();
+               // Set global variable indicating the script type
+               DMLScript.SCRIPT_TYPE = script.getScriptType();
+       }
+
+       /**
         * Perform any necessary cleanup operations after program execution.
         */
        protected void cleanupAfterExecution() {

Reply via email to