You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by fm...@apache.org on 2008/02/15 11:45:04 UTC

svn commit: r628004 - /incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/ScriptEngineHelper.java

Author: fmeschbe
Date: Fri Feb 15 02:45:02 2008
New Revision: 628004

URL: http://svn.apache.org/viewvc?rev=628004&view=rev
Log:
All using the return value of script evaluation instead of requiring string output

Modified:
    incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/ScriptEngineHelper.java

Modified: incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/ScriptEngineHelper.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/ScriptEngineHelper.java?rev=628004&r1=628003&r2=628004&view=diff
==============================================================================
--- incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/ScriptEngineHelper.java (original)
+++ incubator/sling/trunk/scripting/javascript/src/test/java/org/apache/sling/scripting/ScriptEngineHelper.java Fri Feb 15 02:45:02 2008
@@ -39,37 +39,49 @@
 
     public static class Data extends HashMap<String, Object> {
     }
-    
+
     private static ScriptEngine getEngine() {
-        if(engine == null) {
+        if (engine == null) {
             synchronized (ScriptEngineHelper.class) {
-                engine = new RhinoJavaScriptEngineFactory().getScriptEngine(); 
+                engine = new RhinoJavaScriptEngineFactory().getScriptEngine();
             }
         }
         return engine;
     }
-    
+
     public String evalToString(String javascriptCode) throws ScriptException {
         return evalToString(javascriptCode, null);
     }
-    
-    public String evalToString(String javascriptCode, Map<String, Object> data) throws ScriptException {
+
+    public Object eval(String javascriptCode, Map<String, Object> data)
+            throws ScriptException {
+        return eval(javascriptCode, data, new StringWriter());
+    }
+
+    public String evalToString(String javascriptCode, Map<String, Object> data)
+            throws ScriptException {
         final StringWriter sw = new StringWriter();
+        eval(javascriptCode, data, sw);
+        return sw.toString();
+    }
+
+    public Object eval(String javascriptCode, Map<String, Object> data,
+            final StringWriter sw) throws ScriptException {
         final PrintWriter pw = new PrintWriter(sw, true);
         ScriptContext ctx = new SimpleScriptContext();
-        
+
         final Bindings b = new SimpleBindings();
         b.put("out", pw);
-        if(data != null) {
-            for(Map.Entry<String, Object> e : data.entrySet()) {
+        if (data != null) {
+            for (Map.Entry<String, Object> e : data.entrySet()) {
                 b.put(e.getKey(), e.getValue());
             }
         }
-        
+
         ctx.setBindings(b, ScriptContext.ENGINE_SCOPE);
         ctx.setWriter(sw);
         ctx.setErrorWriter(new OutputStreamWriter(System.err));
-        getEngine().eval(javascriptCode, ctx);
-        return sw.toString();
+        return getEngine().eval(javascriptCode, ctx);
     }
+
 }