Search in sources :

Example 36 with Invocable

use of javax.script.Invocable in project jgnash by ccavanaugh.

the class ImportFilter method getDescription.

public String getDescription() {
    try (final Reader reader = getReader()) {
        engine.eval(reader);
        final Invocable invocable = (Invocable) engine;
        final Object result = invocable.invokeFunction("getDescription", Locale.getDefault());
        return result.toString();
    } catch (final ScriptException | IOException | NoSuchMethodException e) {
        logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
    }
    return "";
}
Also used : Invocable(javax.script.Invocable) ScriptException(javax.script.ScriptException) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) IOException(java.io.IOException)

Example 37 with Invocable

use of javax.script.Invocable in project jgnash by ccavanaugh.

the class ImportFilter method processMemo.

public String processMemo(final String memo) {
    try (final Reader reader = getReader()) {
        engine.eval(reader);
        final Invocable invocable = (Invocable) engine;
        final Object result = invocable.invokeFunction("processMemo", memo);
        return result.toString();
    } catch (final ScriptException | IOException | NoSuchMethodException e) {
        logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
    }
    return memo;
}
Also used : Invocable(javax.script.Invocable) ScriptException(javax.script.ScriptException) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) IOException(java.io.IOException)

Example 38 with Invocable

use of javax.script.Invocable in project jgnash by ccavanaugh.

the class ImportFilter method processPayee.

public String processPayee(final String payee) {
    try (final Reader reader = getReader()) {
        engine.eval(reader);
        final Invocable invocable = (Invocable) engine;
        final Object result = invocable.invokeFunction("processPayee", payee);
        return result.toString();
    } catch (final ScriptException | IOException | NoSuchMethodException e) {
        logger.log(Level.SEVERE, e.getLocalizedMessage(), e);
    }
    return payee;
}
Also used : Invocable(javax.script.Invocable) ScriptException(javax.script.ScriptException) Reader(java.io.Reader) InputStreamReader(java.io.InputStreamReader) IOException(java.io.IOException)

Example 39 with Invocable

use of javax.script.Invocable in project sling by apache.

the class Module method loadAsDirectory.

/**
     *
     * @param module
     * @param path
     * @param currentResource
     * @return
     * @throws ScriptException
     */
public ModuleScript loadAsDirectory(String module, String path, Resource currentResource, String loader) throws ScriptException {
    ResourceResolver resolver = currentResource.getResourceResolver();
    Resource packageJson = resolver.getResource(path + "/package.json");
    if (packageJson != null) {
        Node jsonFile = packageJson.adaptTo(Node.class);
        try {
            boolean isFile = (jsonFile.isNodeType(NodeType.NT_FILE) || jsonFile.isNodeType(NodeType.NT_RESOURCE));
            if (isFile) {
                InputStream is = packageJson.getChild("jcr:content").adaptTo(InputStream.class);
                try {
                    String jsonData = IOUtils.toString(is);
                    Invocable invocable = (Invocable) factory.getNashornEngine();
                    JSObject jsonprop = null;
                    try {
                        jsonprop = (JSObject) invocable.invokeMethod(factory.getNashornEngine().eval("JSON"), "parse", jsonData);
                    } catch (NoSuchMethodException ex) {
                        throw new ScriptException(ex);
                    }
                    Object main = jsonprop.getMember("main");
                    if (main != null) {
                        String packageModule = (String) main;
                        String mainpath = normalizePath(packageModule, path);
                        return loadAsFile(packageModule, mainpath, currentResource, loader);
                    }
                } catch (IOException ex) {
                    throw new ScriptException(ex);
                }
            }
        } catch (RepositoryException ex) {
            throw new ScriptException(ex);
        }
    }
    Resource indexjs = resolver.getResource(path + "/index.js");
    if (indexjs != null) {
        return createModuleScript(indexjs, ModuleScript.JS_FILE);
    }
    Resource indexjson = resolver.getResource(path + "/index.json");
    if (indexjson != null) {
        return createModuleScript(indexjson, ModuleScript.JSON_FILE);
    }
    Resource indexnode = resolver.getResource(path + "/index.node");
    if (indexnode != null) {
        throw new ScriptException("Node module .node (binary) loading is currently not supported");
    }
    return null;
}
Also used : InputStream(java.io.InputStream) Node(javax.jcr.Node) SimpleResource(org.apache.sling.scripting.esx.plugins.SimpleResource) Resource(org.apache.sling.api.resource.Resource) JSObject(jdk.nashorn.api.scripting.JSObject) RepositoryException(javax.jcr.RepositoryException) IOException(java.io.IOException) Invocable(javax.script.Invocable) ScriptException(javax.script.ScriptException) ResourceResolver(org.apache.sling.api.resource.ResourceResolver) JSObject(jdk.nashorn.api.scripting.JSObject)

Example 40 with Invocable

use of javax.script.Invocable in project sling by apache.

the class ScriptSandboxServiceImpl method compileSource.

@Override
public String compileSource(String source) throws ScriptException {
    Invocable inv = (Invocable) scriptEngine;
    JSObject rs;
    try {
        rs = (JSObject) inv.invokeMethod(babel, "transform", source, babelOptions);
        return rs.getMember("code").toString();
    } catch (ScriptException ex) {
        throw new ScriptException(ex);
    } catch (NoSuchMethodException ex) {
        throw new ScriptException(ex);
    }
}
Also used : Invocable(javax.script.Invocable) ScriptException(javax.script.ScriptException) JSObject(jdk.nashorn.api.scripting.JSObject)

Aggregations

Invocable (javax.script.Invocable)68 ScriptException (javax.script.ScriptException)41 ScriptEngine (javax.script.ScriptEngine)30 ScriptEngineManager (javax.script.ScriptEngineManager)22 IOException (java.io.IOException)19 File (java.io.File)10 InputStreamReader (java.io.InputStreamReader)10 UndeclaredThrowableException (java.lang.reflect.UndeclaredThrowableException)10 FileReader (java.io.FileReader)9 Reader (java.io.Reader)9 Compilable (javax.script.Compilable)5 CompiledScript (javax.script.CompiledScript)5 BufferedReader (java.io.BufferedReader)4 HashSet (java.util.HashSet)4 Map (java.util.Map)4 Bindings (javax.script.Bindings)4 ScriptContext (javax.script.ScriptContext)4 Writer (java.io.Writer)3 SimpleScriptContext (javax.script.SimpleScriptContext)3 ValidationResult (org.apache.nifi.components.ValidationResult)3