1 package org.opendaylight.controller.sal.restconf.impl;
5 import org.opendaylight.yangtools.yang.common.QName;
6 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
7 import org.opendaylight.yangtools.yang.data.api.ModifyAction;
8 import org.opendaylight.yangtools.yang.data.api.MutableSimpleNode;
9 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
10 import org.opendaylight.yangtools.yang.data.impl.NodeFactory;
12 import com.google.common.base.Preconditions;
14 public final class SimpleNodeWrapper implements NodeWrapper<SimpleNode<?>>, SimpleNode<Object> {
16 private SimpleNode<?> simpleNode;
18 private String localName;
20 private URI namespace;
23 public SimpleNodeWrapper(String localName, Object value) {
24 this.localName = Preconditions.checkNotNull(localName);
28 public SimpleNodeWrapper(URI namespace, String localName, String value) {
29 this(localName, value);
30 this.namespace = namespace;
34 public void setQname(QName name) {
35 Preconditions.checkState(simpleNode == null, "Cannot change the object, due to data inconsistencies.");
40 public String getLocalName() {
41 if (simpleNode != null) {
42 return simpleNode.getNodeType().getLocalName();
48 public URI getNamespace() {
49 if (simpleNode != null) {
50 return simpleNode.getNodeType().getNamespace();
56 public void setNamespace(URI namespace) {
57 Preconditions.checkState(simpleNode == null, "Cannot change the object, due to data inconsistencies.");
58 this.namespace = namespace;
62 public SimpleNode<Object> unwrap() {
63 if (simpleNode == null) {
65 Preconditions.checkNotNull(namespace);
66 name = new QName(namespace, localName);
68 simpleNode = NodeFactory.createImmutableSimpleNode(name, null, value);
75 return (SimpleNode<Object>) simpleNode;
79 public QName getNodeType() {
80 return unwrap().getNodeType();
84 public CompositeNode getParent() {
85 return unwrap().getParent();
89 public Object getValue() {
90 return unwrap().getValue();
94 public ModifyAction getModificationAction() {
95 return unwrap().getModificationAction();
99 public MutableSimpleNode<Object> asMutable() {
100 return unwrap().asMutable();
104 public QName getKey() {
105 return unwrap().getKey();
109 public Object setValue(Object value) {
110 return unwrap().setValue(value);