]> gerrit.simantics Code Review - simantics/r.git/blob - bundles/org.simantics.r.scl/src/org/rosuda/REngine/REXPString.java
Restructured R repository for Tycho POMless builds.
[simantics/r.git] / bundles / org.simantics.r.scl / src / org / rosuda / REngine / REXPString.java
1 package org.rosuda.REngine;
2
3 /** REXPString represents a character vector in R. */
4 public class REXPString extends REXPVector {
5         /** payload */
6         public String[] payload;
7         
8         /** create a new character vector of the length one
9          *  @param load first (and only) element of the vector */
10         public REXPString(String load) {
11                 super();
12                 payload=new String[] { load };
13         }
14
15         /** create a new character vector
16          *  @param load string elements of the vector */
17         public REXPString(String[] load) {
18                 super();
19                 payload=(load==null)?new String[0]:load;
20         }
21
22         /** create a new character vector with attributes
23          *  @param load string elements of the vector
24          *  @param attr attributes */
25         public REXPString(String[] load, REXPList attr) {
26                 super(attr);
27                 payload=(load==null)?new String[0]:load;
28         }
29         
30         public int length() { return payload.length; }
31
32         public boolean isString() { return true; }
33
34         public Object asNativeJavaObject() {
35                 return payload;
36         }
37
38         public String[] asStrings() {
39                 return payload;
40         }
41         
42         public boolean[] isNA() {
43                 boolean a[] = new boolean[payload.length];
44                 int i = 0;
45                 while (i < a.length) { a[i] = (payload[i]==null); i++; }
46                 return a;
47         }
48         
49         public String toDebugString() {
50                 StringBuffer sb = new StringBuffer(super.toDebugString()+"{");
51                 int i = 0;
52                 while (i < payload.length && i < maxDebugItems) {
53                         if (i>0) sb.append(",");
54                         sb.append("\""+payload[i]+"\"");
55                         i++;
56                 }
57                 if (i < payload.length) sb.append(",..");
58                 return sb.toString()+"}";
59         }
60 }