Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.dynjs.jsr223;
  
  import org.dynjs.Config;
  
 import javax.script.*;
 import java.io.Reader;

Author(s):
Bob McWhirter
 
 public class DynJSScriptEngine extends AbstractScriptEngine implements CompilableInvocable {
 
     public static final String GLOBAL_OBJECT = "org.dynjs.global-object";
 
     private final DynJSScriptEngineFactory factory;
 
         this. = factory;
         this. = new SimpleScriptContext();
     }
 
     @Override
     public DynJSCompiledScript compile(String scriptthrows ScriptException {
         Compiler compiler = new DynJS().newCompiler();
         JSProgram program = compiler.withSource(script).compile();
         return new DynJSCompiledScript(thisprogram);
     }
 
     @Override
     public DynJSCompiledScript compile(Reader scriptthrows ScriptException {
         Compiler compiler = new DynJS().newCompiler();
         JSProgram program = compiler.withSource(script).compile();
         return new DynJSCompiledScript(thisprogram);
     }
 
     @Override
     public Object eval(String scriptScriptContext contextthrows ScriptException {
         DynJSCompiledScript program = compile(script);
         return program.eval(context);
 
         //ScriptEngineGlobalObject global = getGlobalObject( context );
         //DynJS runtime = getRuntime( global, context );
         //return runtime.newRunner().withSource( script ).execute();
     }
 
     @Override
     public Object eval(Reader readerScriptContext contextthrows ScriptException {
         DynJSCompiledScript program = compile(reader);
         return program.eval(context);
     }
 
     @Override
     public Bindings createBindings() {
         return new SimpleBindings();
     }
 
     @Override
     public ScriptEngineFactory getFactory() {
         return this.;
     }
 
     @Override
     public Object invokeMethod(Object thizString nameObject... argsthrows ScriptExceptionNoSuchMethodException {
         if (!(thiz instanceof JSObject)) {
             throw new IllegalArgumentException("'this' should be an instance of " + JSObject.class.getName());
         }
 
         ScriptEngineGlobalObject global = RuntimeHelper.getGlobalObject(this.);
         DynJS runtime = RuntimeHelper.getRuntime(globalthis.);
 
         Object property = ((JSObjectthiz).get(runtime.getDefaultExecutionContext(), name);
 
         if (property == .) {
             throw new NoSuchMethodException("No such property '" + name + "'");
         }
 
         if (!(property instanceof JSFunction)) {
             throw new ScriptException("Property '" + name + "' is not a function");
         }
 
         JSFunction function = (JSFunctionproperty;
 
         return runtime.getDefaultExecutionContext().call(functionthizargs);
     }
 
     @Override
     public Object invokeFunction(String nameObject... argsthrows ScriptExceptionNoSuchMethodException {
         ScriptEngineGlobalObject global = RuntimeHelper.getGlobalObject(this.);
 
         return invokeMethod(globalnameargs);
     }
 
     @Override
    public <T> T getInterface(Class<T> clasz) {
        ScriptEngineGlobalObject global = RuntimeHelper.getGlobalObject(this.);
        return getInterface(globalclasz);
    }
    @Override
    public <T> T getInterface(Object thizClass<T> clasz) {
        if (!(thiz instanceof JSObject)) {
            throw new IllegalArgumentException("'this' should be an instance of " + JSObject.class.getName());
        }
        ScriptEngineGlobalObject global = RuntimeHelper.getGlobalObject(this.);
        DynJS runtime = RuntimeHelper.getRuntime(globalthis.);
        try {
            return ((T) manager.getImplementationWrapper(claszruntime.getDefaultExecutionContext(), (JSObjectthiz));
        } catch (Exception e) {
            return null;
        }
    }
New to GrepCode? Check out our FAQ X