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 |
Represents a call to single R function. Set |
2991 |
02 Dec 14 |
nicklas |
parameter values with {@link #setParameter(String, Object)}. |
2991 |
02 Dec 14 |
nicklas |
9 |
|
2991 |
02 Dec 14 |
nicklas |
@author nicklas |
2991 |
02 Dec 14 |
nicklas |
@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 |
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 |
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 |
} |