extensions/net.sf.basedb.reggie/trunk/src/net/sf/basedb/reggie/script/RFunction.java

Code
Comments
Other
Rev Date Author Line
6035 29 Oct 20 nicklas 1 package net.sf.basedb.reggie.script;
2991 02 Dec 14 nicklas 2
2991 02 Dec 14 nicklas 3 import java.util.LinkedHashMap;
2991 02 Dec 14 nicklas 4 import java.util.Map;
2991 02 Dec 14 nicklas 5
2991 02 Dec 14 nicklas 6 /**
2991 02 Dec 14 nicklas 7   Represents a call to single R function. Set
2991 02 Dec 14 nicklas 8   parameter values with {@link #setParameter(String, Object)}.
2991 02 Dec 14 nicklas 9   
2991 02 Dec 14 nicklas 10   @author nicklas
2991 02 Dec 14 nicklas 11   @since 2.18
2991 02 Dec 14 nicklas 12 */
2991 02 Dec 14 nicklas 13 public class RFunction 
2991 02 Dec 14 nicklas 14 {
2991 02 Dec 14 nicklas 15
2991 02 Dec 14 nicklas 16   private final String function;
2991 02 Dec 14 nicklas 17   private final Map<String, String> parameters;
2991 02 Dec 14 nicklas 18   
2991 02 Dec 14 nicklas 19   public RFunction(String function)
2991 02 Dec 14 nicklas 20   {
2991 02 Dec 14 nicklas 21     this.function = function;
2991 02 Dec 14 nicklas 22     this.parameters = new LinkedHashMap<String, String>();
2991 02 Dec 14 nicklas 23   }
2991 02 Dec 14 nicklas 24   
2991 02 Dec 14 nicklas 25   /**
2991 02 Dec 14 nicklas 26     Add a named parameter and value.
2991 02 Dec 14 nicklas 27   */
2991 02 Dec 14 nicklas 28   public void setParameter(String key, Object value)
2991 02 Dec 14 nicklas 29   {
2991 02 Dec 14 nicklas 30     this.parameters.put(key, value.toString());
2991 02 Dec 14 nicklas 31   }
2991 02 Dec 14 nicklas 32
2991 02 Dec 14 nicklas 33   /**
2991 02 Dec 14 nicklas 34     Generates the function call with paramateres.
2991 02 Dec 14 nicklas 35   */
2991 02 Dec 14 nicklas 36   @Override
2991 02 Dec 14 nicklas 37   public String toString()
2991 02 Dec 14 nicklas 38   {
2991 02 Dec 14 nicklas 39     StringBuilder sb = new StringBuilder();
2991 02 Dec 14 nicklas 40     sb.append(function).append("(");
2991 02 Dec 14 nicklas 41     String separator = "";
2991 02 Dec 14 nicklas 42     for (Map.Entry<String, String> p : parameters.entrySet())
2991 02 Dec 14 nicklas 43     {
2991 02 Dec 14 nicklas 44       sb.append(separator);
2991 02 Dec 14 nicklas 45       sb.append(p.getKey()).append("=").append(p.getValue());
2991 02 Dec 14 nicklas 46       separator = ",";
2991 02 Dec 14 nicklas 47     }
2991 02 Dec 14 nicklas 48     sb.append(");");
2991 02 Dec 14 nicklas 49     return sb.toString();
2991 02 Dec 14 nicklas 50   }
2991 02 Dec 14 nicklas 51   
2991 02 Dec 14 nicklas 52 }