1 package org.simantics.r.scl.variable;
\r
3 import org.rosuda.REngine.REXP;
\r
4 import org.rosuda.REngine.REXPMismatchException;
\r
5 import org.rosuda.REngine.RList;
\r
7 public class RListItemNode implements RVariableNode {
\r
9 private RVariableNode parent;
\r
12 public RListItemNode(RVariableNode parent, int index) {
\r
14 this.parent = parent;
\r
18 public REXP getValue() {
\r
19 REXP parentValue = parent.getValue();
\r
20 if (parentValue == null || ! parentValue.isList())
\r
25 list = parentValue.asList();
\r
26 } catch (REXPMismatchException e) {
\r
27 // Should never happen
\r
31 return list.at(index);
\r
35 public String getName() {
\r
36 return RNodeManager.INDEXED_ITEM_NAME_PREFIX + Integer.toString(index);
\r
40 public RVariableNode getParent() {
\r