Repository: incubator-systemml
Updated Branches:
  refs/heads/master 0abb3db01 -> 931fbbcb4


[SYSTEMML-1609] Update dmlFromResource to not require initial slash

Update ScriptFactory so that dmlFromResource and pydmlFromResource
resource paths do not require an initial slash.

Closes #506.


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

Branch: refs/heads/master
Commit: 931fbbcb4facaf241ea44ddbbb5f4067a93b39aa
Parents: 0abb3db
Author: Deron Eriksson <[email protected]>
Authored: Fri May 19 16:59:04 2017 -0700
Committer: Deron Eriksson <[email protected]>
Committed: Fri May 19 16:59:04 2017 -0700

----------------------------------------------------------------------
 .../sysml/api/mlcontext/ScriptFactory.java      | 66 +++++++++++---------
 1 file changed, 36 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-systemml/blob/931fbbcb/src/main/java/org/apache/sysml/api/mlcontext/ScriptFactory.java
----------------------------------------------------------------------
diff --git a/src/main/java/org/apache/sysml/api/mlcontext/ScriptFactory.java 
b/src/main/java/org/apache/sysml/api/mlcontext/ScriptFactory.java
index db89bd1..a01dde2 100644
--- a/src/main/java/org/apache/sysml/api/mlcontext/ScriptFactory.java
+++ b/src/main/java/org/apache/sysml/api/mlcontext/ScriptFactory.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -42,7 +42,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML Script object based on a string path to a file.
-        * 
+        *
         * @param scriptFilePath
         *            path to DML script file (local or HDFS)
         * @return DML Script object
@@ -53,7 +53,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML Script object based on an input stream.
-        * 
+        *
         * @param inputStream
         *            input stream to DML
         * @return DML Script object
@@ -66,7 +66,7 @@ public class ScriptFactory {
         * Creates a DML Script object based on a file in the local file 
system. To
         * create a DML Script object from a local file or HDFS, please use
         * {@link #dmlFromFile(String)}.
-        * 
+        *
         * @param localScriptFile
         *            the local DML file
         * @return DML Script object
@@ -77,7 +77,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML Script object based on a string.
-        * 
+        *
         * @param scriptString
         *            string of DML
         * @return DML Script object
@@ -88,7 +88,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML Script object based on a URL path.
-        * 
+        *
         * @param scriptUrlPath
         *            URL path to DML script
         * @return DML Script object
@@ -99,7 +99,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML Script object based on a URL.
-        * 
+        *
         * @param scriptUrl
         *            URL to DML script
         * @return DML Script object
@@ -110,7 +110,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML Script object based on a resource path.
-        * 
+        *
         * @param resourcePath
         *            path to a resource on the classpath
         * @return DML Script object
@@ -121,7 +121,7 @@ public class ScriptFactory {
 
        /**
         * Create a PYDML Script object based on a string path to a file.
-        * 
+        *
         * @param scriptFilePath
         *            path to PYDML script file (local or HDFS)
         * @return PYDML Script object
@@ -132,7 +132,7 @@ public class ScriptFactory {
 
        /**
         * Create a PYDML Script object based on an input stream.
-        * 
+        *
         * @param inputStream
         *            input stream to PYDML
         * @return PYDML Script object
@@ -145,7 +145,7 @@ public class ScriptFactory {
         * Creates a PYDML Script object based on a file in the local file 
system.
         * To create a PYDML Script object from a local file or HDFS, please use
         * {@link #pydmlFromFile(String)}.
-        * 
+        *
         * @param localScriptFile
         *            the local PYDML file
         * @return PYDML Script object
@@ -156,7 +156,7 @@ public class ScriptFactory {
 
        /**
         * Create a PYDML Script object based on a string.
-        * 
+        *
         * @param scriptString
         *            string of PYDML
         * @return PYDML Script object
@@ -167,7 +167,7 @@ public class ScriptFactory {
 
        /**
         * Creat a PYDML Script object based on a URL path.
-        * 
+        *
         * @param scriptUrlPath
         *            URL path to PYDML script
         * @return PYDML Script object
@@ -178,7 +178,7 @@ public class ScriptFactory {
 
        /**
         * Create a PYDML Script object based on a URL.
-        * 
+        *
         * @param scriptUrl
         *            URL to PYDML script
         * @return PYDML Script object
@@ -189,7 +189,7 @@ public class ScriptFactory {
 
        /**
         * Create a PYDML Script object based on a resource path.
-        * 
+        *
         * @param resourcePath
         *            path to a resource on the classpath
         * @return PYDML Script object
@@ -200,7 +200,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML or PYDML Script object based on a string path to a file.
-        * 
+        *
         * @param scriptFilePath
         *            path to DML or PYDML script file (local or HDFS)
         * @param scriptType
@@ -214,7 +214,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML or PYDML Script object based on an input stream.
-        * 
+        *
         * @param inputStream
         *            input stream to DML or PYDML
         * @param scriptType
@@ -230,7 +230,7 @@ public class ScriptFactory {
         * Creates a DML or PYDML Script object based on a file in the local 
file
         * system. To create a Script object from a local file or HDFS, please 
use
         * {@link scriptFromFile(String, ScriptType)}.
-        * 
+        *
         * @param localScriptFile
         *            The local DML or PYDML file
         * @param scriptType
@@ -244,7 +244,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML or PYDML Script object based on a string.
-        * 
+        *
         * @param scriptString
         *            string of DML or PYDML
         * @param scriptType
@@ -257,7 +257,7 @@ public class ScriptFactory {
 
        /**
         * Creat a DML or PYDML Script object based on a URL path.
-        * 
+        *
         * @param scriptUrlPath
         *            URL path to DML or PYDML script
         * @param scriptType
@@ -271,7 +271,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML or PYDML Script object based on a URL.
-        * 
+        *
         * @param scriptUrl
         *            URL to DML or PYDML script
         * @param scriptType
@@ -285,7 +285,7 @@ public class ScriptFactory {
 
        /**
         * Create a DML or PYDML Script object based on a resource path.
-        * 
+        *
         * @param resourcePath
         *            path to a resource on the classpath
         * @param scriptType
@@ -293,13 +293,19 @@ public class ScriptFactory {
         * @return DML or PYDML Script object
         */
        private static Script scriptFromResource(String resourcePath, 
ScriptType scriptType) {
+               if (resourcePath == null) {
+                       return null;
+               }
+               if (!resourcePath.startsWith("/")) {
+                       resourcePath = "/" + resourcePath;
+               }
                InputStream inputStream = 
ScriptFactory.class.getResourceAsStream(resourcePath);
                return scriptFromInputStream(inputStream, 
scriptType).setName(resourcePath);
        }
 
        /**
         * Create a DML Script object based on a string.
-        * 
+        *
         * @param scriptString
         *            string of DML
         * @return DML Script object
@@ -312,7 +318,7 @@ public class ScriptFactory {
         * Obtain a script string from a file in the local file system. To 
obtain a
         * script string from a file in HDFS, please use
         * getScriptStringFromFile(String scriptFilePath).
-        * 
+        *
         * @param file
         *            The script file.
         * @return The script string.
@@ -339,7 +345,7 @@ public class ScriptFactory {
 
        /**
         * Obtain a script string from a file.
-        * 
+        *
         * @param scriptFilePath
         *            The file path to the script file (either local file 
system or
         *            HDFS)
@@ -376,7 +382,7 @@ public class ScriptFactory {
 
        /**
         * Obtain a script string from an InputStream.
-        * 
+        *
         * @param inputStream
         *            The InputStream from which to read the script string
         * @return The script string
@@ -396,7 +402,7 @@ public class ScriptFactory {
 
        /**
         * Obtain a script string from a URL.
-        * 
+        *
         * @param scriptUrlPath
         *            The URL path to the script file
         * @return The script string
@@ -417,7 +423,7 @@ public class ScriptFactory {
 
        /**
         * Obtain a script string from a URL.
-        * 
+        *
         * @param url
         *            The script URL
         * @return The script string
@@ -442,7 +448,7 @@ public class ScriptFactory {
 
        /**
         * Create a PYDML script object based on a string.
-        * 
+        *
         * @param scriptString
         *            string of PYDML
         * @return PYDML Script object

Reply via email to