1 package org.opendaylight.controller.sal.restconf.impl;
4 import java.util.Collections;
6 import org.opendaylight.yangtools.yang.common.QName;
7 import org.opendaylight.yangtools.yang.data.api.CompositeNode;
8 import org.opendaylight.yangtools.yang.data.api.ModifyAction;
9 import org.opendaylight.yangtools.yang.data.api.MutableSimpleNode;
10 import org.opendaylight.yangtools.yang.data.api.Node;
11 import org.opendaylight.yangtools.yang.data.api.SimpleNode;
12 import org.opendaylight.yangtools.yang.data.impl.NodeFactory;
14 import com.google.common.base.Preconditions;
16 public final class EmptyNodeWrapper implements NodeWrapper<Node<?>>, Node<Void> {
18 private Node<?> unwrapped;
20 private String localName;
21 private URI namespace;
24 private boolean composite;
26 public boolean isComposite() {
30 public void setComposite(boolean composite) {
31 this.composite = composite;
34 public EmptyNodeWrapper(URI namespace, String localName) {
35 this.localName = Preconditions.checkNotNull(localName);
36 this.namespace = namespace;
40 public void setQname(QName name) {
41 Preconditions.checkState(unwrapped == null, "Cannot change the object, due to data inconsistencies.");
46 public String getLocalName() {
47 if (unwrapped != null) {
48 return unwrapped.getNodeType().getLocalName();
54 public URI getNamespace() {
55 if (unwrapped != null) {
56 return unwrapped.getNodeType().getNamespace();
62 public void setNamespace(URI namespace) {
63 Preconditions.checkState(unwrapped == null, "Cannot change the object, due to data inconsistencies.");
64 this.namespace = namespace;
68 public Node<?> unwrap() {
69 if (unwrapped == null) {
71 Preconditions.checkNotNull(namespace);
72 name = new QName(namespace, localName);
75 unwrapped = NodeFactory.createImmutableCompositeNode(name, null, Collections.<Node<?>>emptyList(),null);
77 unwrapped = NodeFactory.createImmutableSimpleNode(name, null, null);
87 public QName getNodeType() {
88 return unwrap().getNodeType();
92 public CompositeNode getParent() {
93 return unwrap().getParent();
97 public Void getValue() {
102 public QName getKey() {
103 return unwrap().getKey();
107 public Void setValue(Void value) {