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);
}
+
}