/* * Copyright 2006 Sun Microsystems, Inc. All rights reserved. * Use is subject to license terms. * * Redistribution and use in source and binary forms, with or without modification, are * permitted provided that the following conditions are met: Redistributions of source code * must retain the above copyright notice, this list of conditions and the following disclaimer. * Redistributions in binary form must reproduce the above copyright notice, this list of * conditions and the following disclaimer in the documentation and/or other materials * provided with the distribution. Neither the name of the Sun Microsystems nor the names of * is contributors may be used to endorse or promote products derived from this software * without specific prior written permission. * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE * OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. */ /* * XPathScriptEngineFactory.java * @author A. Sundararajan */ package org.jbpm.pvm.internal.script; import javax.script.*; import java.util.*; public class XPathScriptEngineFactory implements ScriptEngineFactory { public String getEngineName() { return "xpath"; } public String getEngineVersion() { return "1.0"; } public List getExtensions() { return extensions; } public String getLanguageName() { return "jaxp"; } public String getLanguageVersion() { return "1.4"; } public String getMethodCallSyntax(String obj, String m, String... args) { throw new UnsupportedOperationException("getMethodCallSyntax"); } public List getMimeTypes() { return mimeTypes; } public List getNames() { return names; } public String getOutputStatement(String str) { throw new UnsupportedOperationException("getOutputStatement"); } public String getParameter(String key) { if (key.equals(ScriptEngine.ENGINE)) { return getEngineName(); } else if (key.equals(ScriptEngine.ENGINE_VERSION)) { return getEngineVersion(); } else if (key.equals(ScriptEngine.NAME)) { return getEngineName(); } else if (key.equals(ScriptEngine.LANGUAGE)) { return getLanguageName(); } else if (key.equals(ScriptEngine.LANGUAGE_VERSION)) { return getLanguageVersion(); } else if (key.equals("THREADING")) { return "MULTITHREADED"; } else { return null; } } public String getProgram(String... statements) { throw new UnsupportedOperationException("getProgram"); } public ScriptEngine getScriptEngine() { XPathScriptEngine engine = new XPathScriptEngine(); engine.setFactory(this); return engine; } private static List names; private static List extensions; private static List mimeTypes; static { names = new ArrayList(1); names.add("xpath"); names = Collections.unmodifiableList(names); extensions = names; mimeTypes = new ArrayList(0); mimeTypes = Collections.unmodifiableList(mimeTypes); } }