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 RNamedItemNode implements RVariableNode {
\r
9 public RNamedItemNode(RVariableNode parent, String name) {
\r
10 this.parent = parent;
\r
14 private RVariableNode parent;
\r
15 private String name;
\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(name);
\r
35 public String getName() {
\r
36 return RNodeManager.NAMED_ITEM_NAME_PREFIX + name;
\r
40 public RVariableNode getParent() {
\r