Author: mfortun Date: 2011-07-25 17:24:41 +0200 (Mon, 25 Jul 2011) New Revision: 1088 Url: http://nuiton.org/repositories/revision/wikitty/1088 Log: * complete factory Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngineFactory.java Modified: trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngineFactory.java =================================================================== --- trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngineFactory.java 2011-07-25 13:34:29 UTC (rev 1087) +++ trunk/wikitty-publication/src/main/java/org/nuiton/wikitty/publication/engine/HtmlScriptEngineFactory.java 2011-07-25 15:24:41 UTC (rev 1088) @@ -1,17 +1,43 @@ package org.nuiton.wikitty.publication.engine; +import java.util.ArrayList; +import java.util.Collections; import java.util.List; import javax.script.ScriptEngine; import javax.script.ScriptEngineFactory; +public class HtmlScriptEngineFactory implements ScriptEngineFactory { -public class HtmlScriptEngineFactory implements ScriptEngineFactory{ + static protected List<String> extensions; + static protected List<String> names; + static protected List<String> mimesTypes; + static { + extensions = new ArrayList<String>(5); + extensions.add("xhtml"); + extensions.add("xht"); + extensions.add("xml"); + extensions.add("html"); + extensions.add("htm"); + extensions = Collections.unmodifiableList(extensions); + + names = new ArrayList<String>(2); + names.add("HtmlScriptEngine"); + names.add("WikittyPublicationHtmlEngine"); + names = Collections.unmodifiableList(names); + + mimesTypes = new ArrayList<String>(2); + mimesTypes.add("application/xhtml+xml"); + mimesTypes.add("text/html"); + + mimesTypes = Collections.unmodifiableList(mimesTypes); + } + @Override public String getEngineName() { return "HTML"; - + } @Override @@ -21,26 +47,17 @@ @Override public List<String> getExtensions() { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + return extensions; } @Override public List<String> getMimeTypes() { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + return mimesTypes; } @Override public List<String> getNames() { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + return names; } @Override @@ -50,54 +67,70 @@ @Override public String getLanguageVersion() { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + return "5.0"; } @Override public Object getParameter(String key) { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + + if (key.equals(ScriptEngine.ENGINE)) { + return this.getScriptEngine(); + } + if (key.equals(ScriptEngine.ENGINE_VERSION)) { + return this.getEngineVersion(); + } + if (key.equals(ScriptEngine.NAME)) { + return this.getEngineName(); + } + if (key.equals(ScriptEngine.LANGUAGE)) { + return this.getLanguageName(); + } + if (key.equals(ScriptEngine.LANGUAGE_VERSION)) { + return this.getLanguageVersion(); + } + + throw new IllegalArgumentException("Invalid key"); + } @Override public String getMethodCallSyntax(String obj, String m, String... args) { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + String ret = obj + "." + m + "("; + int len = args.length; + if (len == 0) { + ret += ")"; + return ret; + } + + for (int i = 0; i < len; i++) { + ret += args[i]; + if (i != len - 1) { + ret += ","; + } else { + ret += ")"; + } + } + return ret; } @Override public String getOutputStatement(String toDisplay) { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + return toDisplay; } @Override public String getProgram(String... statements) { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + int len = statements.length; + String ret = ""; + for (int i = 0; i < len; i++) { + ret += statements[i] + ";"; + } + + return ret; } @Override public ScriptEngine getScriptEngine() { - // TODO mfortun - throw new UnsupportedOperationException("not yet implemented"); - //return null; - + return new HtmlScriptEngine(); } - - - - - }