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

com.novartis.opensource.yada.adaptor.RdsAdaptor Maven / Gradle / Ivy

The newest version!
package com.novartis.opensource.yada.adaptor;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.script.ScriptEngine;
import javax.script.ScriptException;

import org.apache.log4j.Logger;
import org.renjin.eval.EvalException;
import org.renjin.script.RenjinScriptEngineFactory;
import org.renjin.sexp.SEXP;

import com.novartis.opensource.yada.YADAQuery;
import com.novartis.opensource.yada.YADAQueryResult;
import com.novartis.opensource.yada.YADARequest;

/**
 * @author dvaron
 * @since 9.1.0
 */
public class RdsAdaptor extends FileSystemAdaptor {
  
  /**
   * Local logger instance
   */
  private static Logger l = Logger.getLogger(RdsAdaptor.class);
  
  /**
   * Delimeter separating file name and references to objects in file
   */
  protected final static String INDEX_DELIMITER_RX = "(?:#(.+))?";
  
  /**
   * Regex matches strings like any non-path-delimiter char followed by optional path delimiter chars.
   * Path pattern to facilitate extraction of path and arguments into separate groups   * 
   */
  protected final static String PATH_RX = "^([^#]+)?"+INDEX_DELIMITER_RX+"$";
  
  /**
   * Constant equal to: {@code (\\?[idvn])}
   */
  protected final static String  PARAM_SYMBOL_RX = "\\?[idvn]";

  /**
   * No arg constructor (unused)
   */
  public RdsAdaptor() {
  }

  /**
   * @param yadaReq the request containing the query the adaptor will execute
   */
  public RdsAdaptor(YADARequest yadaReq) {
    super(yadaReq);
  }
  
  @Override
  public void execute(YADAQuery yq) throws YADAAdaptorExecutionException
  {
    Object result = null;
    resetCountParameter(yq);
    for(int row=0;row




© 2015 - 2025 Weber Informatics LLC | Privacy Policy