All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.molgenis.js.JsScriptRunner Maven / Gradle / Ivy

package org.molgenis.js;

import static java.util.Objects.requireNonNull;

import java.util.Map;
import org.molgenis.script.core.Script;
import org.molgenis.script.core.ScriptRunner;
import org.molgenis.script.core.ScriptUtils;
import org.springframework.stereotype.Service;

/** Runs a JavaScript with the given inputs and returns one output */
@Service
public class JsScriptRunner implements ScriptRunner {
  private static final String NAME = "JavaScript";

  private final JsScriptExecutor jsScriptExecutor;

  public JsScriptRunner(JsScriptExecutor jsScriptExecutor) {
    this.jsScriptExecutor = requireNonNull(jsScriptExecutor);
  }

  @Override
  public String getName() {
    return NAME;
  }

  @Override
  public boolean hasFileOutput(Script script) {
    return false;
  }

  @Override
  public String runScript(Script script, Map parameters) {
    String jsScript = ScriptUtils.generateScript(script, parameters);
    Object scriptResult = jsScriptExecutor.executeScript(jsScript);
    return scriptResult != null ? scriptResult.toString() : null;
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy