]> gerrit.simantics Code Review - simantics/r.git/blob - org.simantics.r.scl/src/org/simantics/r/scl/variable/RListLengthNode.java
Share project "org.simantics.r.feature" into "https://www.simantics.org/svn/simantics"
[simantics/r.git] / org.simantics.r.scl / src / org / simantics / r / scl / variable / RListLengthNode.java
1 package org.simantics.r.scl.variable;\r
2 \r
3 import org.rosuda.REngine.REXP;\r
4 import org.rosuda.REngine.REXPInteger;\r
5 import org.rosuda.REngine.REXPMismatchException;\r
6 \r
7 public class RListLengthNode implements RVariableNode {\r
8 \r
9         RVariableNode parent;\r
10         \r
11         public RListLengthNode(RVariableNode parent) {\r
12                 this.parent = parent;\r
13         }\r
14 \r
15         @Override\r
16         public REXP getValue() {\r
17                 REXP parentValue = parent.getValue();\r
18                 if (parentValue == null)\r
19                         return null;\r
20                 \r
21                 try {\r
22                         return new REXPInteger(parentValue.length());\r
23                 } catch (REXPMismatchException e) {\r
24                         return null;\r
25                 }\r
26         }\r
27 \r
28         @Override\r
29         public String getName() {\r
30                 return "length";\r
31         }\r
32 \r
33         @Override\r
34         public RVariableNode getParent() {\r
35                 return parent;\r
36         }\r
37 }\r