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<String> {
16 private SimpleNode<String> simpleNode;
18 private String localName;
20 private URI namespace;
22 public SimpleNodeWrapper(String localName, String value) {
23 this.localName = Preconditions.checkNotNull(localName);
28 public String getLocalName() {
29 if (simpleNode != null) {
30 return simpleNode.getNodeType().getLocalName();
36 public URI getNamespace() {
37 if (simpleNode != null) {
38 return simpleNode.getNodeType().getNamespace();
44 public void setNamespace(URI namespace) {
45 Preconditions.checkState(simpleNode == null, "Cannot change the object, due to data inconsistencies.");
46 this.namespace = namespace;
50 public SimpleNode<String> unwrap(CompositeNode parent) {
51 if (simpleNode == null) {
52 Preconditions.checkNotNull(namespace);
53 simpleNode = NodeFactory.createImmutableSimpleNode(new QName(namespace, localName), parent, value);
63 public QName getNodeType() {
64 return unwrap(null).getNodeType();
68 public CompositeNode getParent() {
69 return unwrap(null).getParent();
73 public String getValue() {
74 return unwrap(null).getValue();
78 public ModifyAction getModificationAction() {
79 return unwrap(null).getModificationAction();
83 public MutableSimpleNode<String> asMutable() {
84 return unwrap(null).asMutable();
88 public QName getKey() {
89 return unwrap(null).getKey();
93 public String setValue(String value) {
94 return unwrap(null).setValue(value);