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<Object> 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, Object 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 QName getQname() {
45 public String getLocalName() {
46 if (simpleNode != null) {
47 return simpleNode.getNodeType().getLocalName();
53 public URI getNamespace() {
54 if (simpleNode != null) {
55 return simpleNode.getNodeType().getNamespace();
61 public void setNamespace(URI namespace) {
62 Preconditions.checkState(simpleNode == null, "Cannot change the object, due to data inconsistencies.");
63 this.namespace = namespace;
67 public boolean isChangeAllowed() {
68 return simpleNode == null ? true : false;
72 public SimpleNode<Object> unwrap() {
73 if (simpleNode == null) {
75 Preconditions.checkNotNull(namespace);
76 name = new QName(namespace, localName);
78 simpleNode = NodeFactory.createImmutableSimpleNode(name, null, value);
85 return (SimpleNode<Object>) simpleNode;
89 public QName getNodeType() {
90 return unwrap().getNodeType();
94 public CompositeNode getParent() {
95 return unwrap().getParent();
99 public Object getValue() {
100 return unwrap().getValue();
104 public ModifyAction getModificationAction() {
105 return unwrap().getModificationAction();
109 public MutableSimpleNode<Object> asMutable() {
110 return unwrap().asMutable();
114 public QName getKey() {
115 return unwrap().getKey();
119 public Object setValue(Object value) {
120 return unwrap().setValue(value);