001/*
002 * $Id$
003 */
004
005package edu.jas.kern;
006
007
008import java.util.ArrayList;
009import java.util.Arrays;
010import java.util.Collections;
011import java.util.List;
012
013import javax.script.ScriptEngine;
014import javax.script.ScriptEngineFactory;
015
016
017public class PyScriptEngineFactory implements ScriptEngineFactory {
018
019
020    @Override
021    public String getProgram(String... S) {
022        StringBuffer sb = new StringBuffer();
023        for (String s : S) {
024            sb.append(s + "; ");
025        }
026        return sb.toString();
027    }
028
029
030    @Override
031    public ScriptEngine getScriptEngine() {
032        return new PyScriptEngine();
033    }
034
035
036    @Override
037    public String getOutputStatement(String s) {
038        return s;
039    }
040
041
042    @Override
043    public String getMethodCallSyntax(String o, String m, String... S) {
044        return o + "." + m + "(" + Arrays.toString(S) + ")";
045    }
046
047
048    @Override
049    public Object getParameter(String s) {
050        return s;
051    }
052
053
054    @Override
055    public String getLanguageVersion() {
056        return "1.0";
057    }
058
059
060    @Override
061    public String getLanguageName() {
062        return "JAS jython";
063    }
064
065
066    @Override
067    public String getEngineVersion() {
068        return "0.1";
069    }
070
071
072    @Override
073    public String getEngineName() {
074        return "JAS_jython";
075    }
076
077
078    @Override
079    public List<String> getNames() {
080        List<String> ls = new ArrayList<String>();
081        ls.add("jython");
082        //System.out.println("getNames: " + ls);
083        return Collections.unmodifiableList(ls);
084    }
085
086
087    @Override
088    public List<String> getMimeTypes() {
089        List<String> ls = new ArrayList<String>();
090        ls.add("x-application/python");
091        //System.out.println("getMimeTypes: " + ls);
092        return Collections.unmodifiableList(ls);
093    }
094
095
096    @Override
097    public List<String> getExtensions() {
098        List<String> ls = new ArrayList<String>();
099        ls.add("py");
100        //System.out.println("getExtensions: " + ls);
101        return Collections.unmodifiableList(ls);
102    }
103
104}