Package org.apache.bsf.engines.javascript

Source Code of org.apache.bsf.engines.javascript.RhinoScriptEngineFactory

package org.apache.bsf.engines.javascript;

import javax.script.GenericScriptContext;
import javax.script.ScriptContext;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineFactory;

/**
* RhinoScriptEngine contains methods which can be used to get
* information on describing the RhinoScriptEngine -- an
* implementation of ScriptEngine for JavaScripts.
*
* @author Nandika Jayawardana <nandika@opensource.lk>
* @author Sanka Samaranayake  <sanka@opensource.lk>
*/
public class RhinoScriptEngineFactory implements ScriptEngineFactory {
 
  private ScriptEngine rhinoEngine;
  private ScriptContext scriptContext;

    /**
     * Consturcts a RhinoScriptEngineFactory.
     */
  public RhinoScriptEngineFactory() {
  }

  /**
     * Retrieves an uninitialized ScriptContext which can be used
     * with all ScriptEngines associated with the Factory.
     * 
   * @return an uninitialized ScriptContext
   */
    public ScriptContext getContext() {
    return new GenericScriptContext();
  }
 
    /**
     * Retrieves a new instance of Rhino Engine.
     *
     * @return a new instance of RhinoScriptEngine
     */
  public ScriptEngine getScriptEngine()  {
    return new RhinoScriptEngine();
  }
 
    /**
     * Retrieves the full name of the 'Rhino Engine'
     *
     * @return the full name of the Rhino Engine
     */
  public String getEngineName() {
    return "RhinoScriptEngine";
  }
   
    /**
     * Retrieves a the version of the Rhino Engine.
     *
     * @return the version of the Rhino Engine
     */ 
  public String getEngineVersion() {
    return "1.0";
  }
 
    /**
     * Retrieves an array of strings discribing the extensions
     * supported by the Rhino Engine.
     *
     * @return a String array describing the supported extensions
     */
  public String[] getExtensions() {
        return new String[]{"js", "jss"};
  }
 
    /**
     * Retrieves the name of the language supported by the
     * Rhino Engine. .. 'javascript' obviously ..
     *
     * @return the name of the supported language
     */
  public String getLanguageName() {
    return "javascript";
  }
   
    /**
     * Retrieves the javascript version supported by the Rhino Engine.
     *
     * @return the version of the supported language.
     */
  public String getLanguageVersion() {
    return "1.5";
  }
   
    /**
     * Retrieves an array of Strings describing the MIME types
     * supported by the Rhino Engine.
     *
     * @return an array of Strings describing the supported MIME
     *         types
     */
  public String[] getMimeTypes() {
        return new String[]{};
  }
   
    /**
     * Retrieves an array of Strings which can be used as
     * descriptives of the Rhino Engine.
     *
     * @return an array of descriptives of the Rhino Engine
     */
  public String[] getName() {
    return new String[]{"javascript","rhino"};
  }
   
    /**
     * Retrieves an associated value for the specified key. Returns
     * null if the ScriptEngine does not have an associated value for
     * the key.
     * 
     * @return associated value for the specified key
     */
  public Object getParameter(Object key) {
        if (key == ScriptEngine.ENGINE) {
            return getEngineName();
        } else if (key == ScriptEngine.ENGINE_VERSION) {
            return getEngineVersion();
        } else if (key == ScriptEngine.NAME) {
            return getName();
        } else if (key == ScriptEngine.LANGUAGE) {
            return getLanguageName();
        } else if(key == ScriptEngine.ENGINE_VERSION) {
            return getLanguageVersion();
        } else if (key == "THREADING") {
          return "MULTITHREADED";
        } else {
            return null;
        }       
     }
}
TOP

Related Classes of org.apache.bsf.engines.javascript.RhinoScriptEngineFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.