Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.eclipse.birt.core.script
Class JavascriptEvalUtil

    java.lang.Object
      org.eclipse.birt.core.script.JavascriptEvalUtil

    public class JavascriptEvalUtil

extends java.lang.Object

Utilities to faciliate the evaluation of Javascript expressions. Handles common evaluation tasks like exception handling, data type conversion and script caching

Field Summary
`protected static java.util.Map` | `compiledScriptCache`
`protected static int` | `SCRIPT_CACHE_SIZE`

Constructor Summary
`JavascriptEvalUtil()`

Method Summary
`static java.lang.Object` | `convertJavascriptValue(java.lang.Object inputObj)` Handles a Rhino script evaluation result, converting Javascript object into equivalent Java objects if necessary.
`static java.lang.Object[]` | `convertToJavaObjects(java.lang.Object[] args)`
`static java.lang.Object` | `convertToJavascriptValue(java.lang.Object value)` If caller does not have a scope for evaluation, the caller can use this method to evaluate expression.
`static java.lang.Object` | `convertToJavascriptValue(java.lang.Object value, org.mozilla.javascript.Scriptable scope)` Creates Javascript native wrapper for Java objects, if necessary.
`static java.lang.Object` | `evaluateRawScript(org.mozilla.javascript.Context cx, org.mozilla.javascript.Scriptable scope, java.lang.String scriptText, java.lang.String source, int lineNo)` This method will not convert the data of return value, so it might the Java data type or that of Java Script.
`static java.lang.Object` | `evaluateScript(org.mozilla.javascript.Context cx, org.mozilla.javascript.Scriptable scope, java.lang.String scriptText, java.lang.String source, int lineNo)` Evaluates Javascript expression and return its result, doing the necessary Javascript -> Java data type conversion if necessary
`protected static org.mozilla.javascript.Script` | `getCompiledScript(org.mozilla.javascript.Context cx, org.mozilla.javascript.Scriptable scope, java.lang.String scriptText, java.lang.String source, int lineNo)` Gets a compiled script, using and updating the script cache if necessary
`static java.lang.String` | `transformToJsConstants(java.lang.String s)` This method transforms a string to JS string constants.
`static java.lang.String` | `transformToJsExpression(java.lang.String s)`
`static BirtException` | `wrapRhinoException(org.mozilla.javascript.RhinoException e, java.lang.String scriptText, java.lang.String source, int lineNo)` Converts Rhino exception (a runtime exception) to BirtException

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### SCRIPT_CACHE_SIZE

    protected static final int SCRIPT_CACHE_SIZE

See Also:
  Constant Field Values

### compiledScriptCache

    protected static java.util.Map compiledScriptCache

Constructor Detail

### JavascriptEvalUtil

    public JavascriptEvalUtil()

Method Detail

### evaluateRawScript

    public static java.lang.Object evaluateRawScript(org.mozilla.javascript.Context cx,
                                                     org.mozilla.javascript.Scriptable scope,
                                                     java.lang.String scriptText,
                                                     java.lang.String source,
                                                     int lineNo)
                                              throws BirtException

  This method will not convert the data of return value, so it might the Java data type or that of Java Script.

  Parameters:
    `cx` -
    `scope` -
    `scriptText` -
    `source` -
    `lineNo` -
  Returns:
    the evaluated value
  Throws:
    `BirtException`

### evaluateScript

    public static java.lang.Object evaluateScript(org.mozilla.javascript.Context cx,
                                                  org.mozilla.javascript.Scriptable scope,
                                                  java.lang.String scriptText,
                                                  java.lang.String source,
                                                  int lineNo)
                                           throws BirtException

  Evaluates Javascript expression and return its result, doing the necessary Javascript -> Java data type conversion if necessary

  Parameters:
    `cx` - Javascript context. If null, current thread's context is used
    `scope` - Javascript scope to evaluate script in
    `scriptText` - text of Javascript expression
    `source` - descriptive text of script source (for error reporting)
    `lineNo` - line number of script in it source
  Returns:
    Evaluation result.
  Throws:
    `BirtException` - If evaluation failed

### getCompiledScript

    protected static org.mozilla.javascript.Script getCompiledScript(org.mozilla.javascript.Context cx,
                                                                     org.mozilla.javascript.Scriptable scope,
                                                                     java.lang.String scriptText,
                                                                     java.lang.String source,
                                                                     int lineNo)

  Gets a compiled script, using and updating the script cache if necessary

### convertToJavascriptValue

    public static java.lang.Object convertToJavascriptValue(java.lang.Object value,
                                                            org.mozilla.javascript.Scriptable scope)

  Creates Javascript native wrapper for Java objects, if necessary. This method currently only wraps Date/time objects. Rhino engine natively handles wrapping String, Number and Boolean objects.

  Parameters:
    `value` - Java object to convert from

### convertToJavascriptValue

    public static java.lang.Object convertToJavascriptValue(java.lang.Object value)

  If caller does not have a scope for evaluation, the caller can use this method to evaluate expression. But if caller has its own scope which can be used, the better way is call the method of convertToJavascriptValue( Object value, Scriptable scope ).

  Parameters:
    `value` -
  Returns:

### convertJavascriptValue

    public static java.lang.Object convertJavascriptValue(java.lang.Object inputObj)

  Handles a Rhino script evaluation result, converting Javascript object into equivalent Java objects if necessary.

  Parameters:
    `inputObj` - Object returned by rhino engine.
  Returns:
    If inputObj is a native Javascript object, its equivalent Java object is returned; otherwise inputObj is returned

### wrapRhinoException

    public static BirtException wrapRhinoException(org.mozilla.javascript.RhinoException e,
                                                   java.lang.String scriptText,
                                                   java.lang.String source,
                                                   int lineNo)

  Converts Rhino exception (a runtime exception) to BirtException

  Parameters:
    `e` - Rhino exception
    `scriptText` - Javascript code which resulted in the exception (for error reporting purpose)
    `source` - description of the source script. If null, get this info from Rhino exception
    `lineNo` - lineNo of error location
  Throws:
    ``

### convertToJavaObjects

    public static java.lang.Object[] convertToJavaObjects(java.lang.Object[] args)

  Parameters:
    `args` -
  Returns:

### transformToJsConstants

    public static java.lang.String transformToJsConstants(java.lang.String s)

  This method transforms a string to JS string constants.

  Parameters:
    `s` -
  Returns:

### transformToJsExpression

    public static java.lang.String transformToJsExpression(java.lang.String s)

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2008 Actuate Corp. All rights reserved.