Author: mfortun Date: 2011-07-25 15:34:29 +0200 (Mon, 25 Jul 2011) New Revision: 1087 Url: http://nuiton.org/repositories/revision/wikitty/1087 Log: * complete html script engine methods Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngine.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngine.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngine.java 2011-07-25 13:08:27 UTC (rev 1086) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngine.java 2011-07-25 13:34:29 UTC (rev 1087) @@ -1,5 +1,6 @@ package org.nuiton.wikitty.publication.engine; +import java.io.IOException; import java.io.Reader; import java.lang.reflect.Method; import java.util.LinkedList; @@ -11,6 +12,7 @@ import javax.script.ScriptEngineFactory; import javax.script.ScriptException; import javax.script.SimpleBindings; +import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; import org.nuiton.util.StringUtil; @@ -29,7 +31,8 @@ */ static public String REGEX_BIND_ELEMENT_METHOD = "\\.\\w+\\(\\w*\\)"; static public String REGEX_END = "$"; - static public String REGEX_EMPTY_END = " *" + REGEX_END; + static public String REGEX_EMPTY = " *"; + static public String REGEX_EMPTY_END = REGEX_EMPTY + REGEX_END; protected ScriptEngineFactory factory; protected ScriptContext context; @@ -38,51 +41,53 @@ @Override public Object eval(String script, ScriptContext context) throws ScriptException { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - // return null; - + if (context.getBindings(ScriptContext.ENGINE_SCOPE) == null) { + return script; + } + return evaluateCodeInsideHtml(script, + context.getBindings(ScriptContext.ENGINE_SCOPE)); } @Override public Object eval(Reader reader, ScriptContext context) throws ScriptException { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - // return null; - + try { + return this.eval(IOUtils.toString(reader), context); + } catch (IOException e) { + //TODO mfortun-2011-07-25 handle this, change ? + return StringUtils.EMPTY; + } } @Override public Object eval(String script) throws ScriptException { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - // return null; + if (context.getBindings(ScriptContext.ENGINE_SCOPE) == null) { + return script; + } + return evaluateCodeInsideHtml(script, + context.getBindings(ScriptContext.ENGINE_SCOPE)); } @Override public Object eval(Reader reader) throws ScriptException { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - // return null; + return this.eval(reader, getContext()); } @Override public Object eval(String script, Bindings n) throws ScriptException { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - // return null; - + return evaluateCodeInsideHtml(script, n); } @Override public Object eval(Reader reader, Bindings n) throws ScriptException { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - // return null; - + try { + return this.eval(IOUtils.toString(reader), n); + } catch (IOException e) { + //TODO mfortun-2011-07-25 handle this, change ? + return StringUtils.EMPTY; + } } @Override @@ -245,4 +250,7 @@ } + + + }
participants (1)
-
mfortun@users.nuiton.org