org.rhq.bindings.engine
Class JsEngineInitializer

java.lang.Object
  extended by org.rhq.bindings.engine.JsEngineInitializer
All Implemented Interfaces:
ScriptEngineInitializer

public class JsEngineInitializer
extends Object
implements ScriptEngineInitializer

Author:
Lukas Krejci

Constructor Summary
JsEngineInitializer()
           
 
Method Summary
 String extractUserFriendlyErrorMessage(ScriptException e)
          At least the Rhino script engine for java script generates exceptions whose error messages contain just "too much" information to be easily decipherable by the end users.
 Set<String> generateIndirectionMethods(String boundObjectName, Set<Method> methods)
          This function returns a definition string in the script engine's language that provides an indirection to calling the method on the bound object.
 boolean implementsLanguage(String language)
           
 ScriptEngine instantiate(Set<String> packages)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

JsEngineInitializer

public JsEngineInitializer()
Method Detail

implementsLanguage

public boolean implementsLanguage(String language)
Specified by:
implementsLanguage in interface ScriptEngineInitializer

instantiate

public ScriptEngine instantiate(Set<String> packages)
                         throws ScriptException
Specified by:
instantiate in interface ScriptEngineInitializer
Throws:
ScriptException

generateIndirectionMethods

public Set<String> generateIndirectionMethods(String boundObjectName,
                                              Set<Method> methods)
Description copied from interface: ScriptEngineInitializer
This function returns a definition string in the script engine's language that provides an indirection to calling the method on the bound object. for example for parameters: The method would generate this javascript:
function bar(arg) { return foo.bar(arg); }

This method gets passed all the overloaded versions of a method on the object (i.e. all the methods with the same name) and is free to return any number of functions that will map all the possible overloaded versions.

This is because different scripting languages have different support for function overloading and different ways of handling varying number of arguments of a function.

Specified by:
generateIndirectionMethods in interface ScriptEngineInitializer
Returns:
a set of strings with top-level function definitions in the scripting language

extractUserFriendlyErrorMessage

public String extractUserFriendlyErrorMessage(ScriptException e)
Description copied from interface: ScriptEngineInitializer
At least the Rhino script engine for java script generates exceptions whose error messages contain just "too much" information to be easily decipherable by the end users.

This method extracts messages from the exception such that they are presentable to the end user.

The returned string should only contain the error message. The filename, line and column information should be stripped from it if at all possible.

Specified by:
extractUserFriendlyErrorMessage in interface ScriptEngineInitializer
Returns:


Copyright © 2008-2012 Red Hat, Inc.. All Rights Reserved.