X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-rest-connector%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Frestconf%2Fimpl%2FCompositeNodeWrapper.java;h=96ad528a0dd3f9e0591b78b2be702e9b1d004c4c;hp=da07bba187a25e185cab8b72211860e0ffd99437;hb=aefe82b158bc1694fe633053d04f2364bcbe67d9;hpb=1c2a0d378926c94951387932f5b98fc35b22fa66 diff --git a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/CompositeNodeWrapper.java b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/CompositeNodeWrapper.java index da07bba187..96ad528a0d 100644 --- a/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/CompositeNodeWrapper.java +++ b/opendaylight/md-sal/sal-rest-connector/src/main/java/org/opendaylight/controller/sal/restconf/impl/CompositeNodeWrapper.java @@ -1,3 +1,10 @@ +/* + * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ package org.opendaylight.controller.sal.restconf.impl; import java.net.URI; @@ -24,12 +31,29 @@ public final class CompositeNodeWrapper implements NodeWrapper, C private String localName; private URI namespace; + private QName name; private List> values = new ArrayList<>(); - - public CompositeNodeWrapper(String localName) { + + public CompositeNodeWrapper(final String localName) { this.localName = Preconditions.checkNotNull(localName); } + public CompositeNodeWrapper(final URI namespace, final String localName) { + this(localName); + this.namespace = namespace; + } + + @Override + public void setQname(final QName name) { + Preconditions.checkState(compositeNode == null, "Cannot change the object, due to data inconsistencies."); + this.name = name; + } + + @Override + public QName getQname() { + return name; + } + @Override public String getLocalName() { if (compositeNode != null) { @@ -47,174 +71,186 @@ public final class CompositeNodeWrapper implements NodeWrapper, C } @Override - public void setNamespace(URI namespace) { + public void setNamespace(final URI namespace) { Preconditions.checkState(compositeNode == null, "Cannot change the object, due to data inconsistencies."); this.namespace = namespace; } - public void addValue(NodeWrapper value) { + public void addValue(final NodeWrapper value) { Preconditions.checkState(compositeNode == null, "Cannot change the object, due to data inconsistencies."); values.add(value); } - public void removeValue(NodeWrapper value) { + public void removeValue(final NodeWrapper value) { Preconditions.checkState(compositeNode == null, "Cannot change the object, due to data inconsistencies."); values.remove(value); } - + public List> getValues() { Preconditions.checkState(compositeNode == null, "Data can be inconsistent."); return Collections.unmodifiableList(values); } @Override - public CompositeNode unwrap(CompositeNode parent) { + public boolean isChangeAllowed() { + return compositeNode == null ? true : false; + } + + @Override + public CompositeNode unwrap() { if (compositeNode == null) { - Preconditions.checkNotNull(namespace); - compositeNode = NodeFactory.createMutableCompositeNode(new QName(namespace, localName), - parent, new ArrayList>(), ModifyAction.CREATE, null); - + if (name == null) { + Preconditions.checkNotNull(namespace); + name = new QName(namespace, localName); + } + List> nodeValues = new ArrayList<>(); for (NodeWrapper nodeWrapper : values) { - nodeValues.add(nodeWrapper.unwrap(compositeNode)); + nodeValues.add(nodeWrapper.unwrap()); } - compositeNode.setValue(nodeValues); - + compositeNode = NodeFactory.createMutableCompositeNode(name, null, nodeValues, null, null); + values = null; namespace = null; localName = null; + name = null; } return compositeNode; } @Override public QName getNodeType() { - return unwrap(null).getNodeType(); + return unwrap().getNodeType(); } + @Deprecated @Override public CompositeNode getParent() { - return unwrap(null).getParent(); + return unwrap().getParent(); } @Override public List> getValue() { - return unwrap(null).getValue(); + return unwrap().getValue(); } @Override public ModifyAction getModificationAction() { - return unwrap(null).getModificationAction(); + return unwrap().getModificationAction(); } + /** + * @deprecated Use {@link #getValue()} instead. + */ + @Deprecated @Override public List> getChildren() { - return unwrap(null).getChildren(); + return unwrap().getValue(); } @Override - public List getCompositesByName(QName children) { - return unwrap(null).getCompositesByName(children); + public List getCompositesByName(final QName children) { + return unwrap().getCompositesByName(children); } @Override - public List getCompositesByName(String children) { - return unwrap(null).getCompositesByName(children); + public List getCompositesByName(final String children) { + return unwrap().getCompositesByName(children); } @Override - public List> getSimpleNodesByName(QName children) { - return unwrap(null).getSimpleNodesByName(children); + public List> getSimpleNodesByName(final QName children) { + return unwrap().getSimpleNodesByName(children); } @Override - public List> getSimpleNodesByName(String children) { - return unwrap(null).getSimpleNodesByName(children); + public List> getSimpleNodesByName(final String children) { + return unwrap().getSimpleNodesByName(children); } @Override - public CompositeNode getFirstCompositeByName(QName container) { - return unwrap(null).getFirstCompositeByName(container); + public CompositeNode getFirstCompositeByName(final QName container) { + return unwrap().getFirstCompositeByName(container); } @Override - public SimpleNode getFirstSimpleByName(QName leaf) { - return unwrap(null).getFirstSimpleByName(leaf); + public SimpleNode getFirstSimpleByName(final QName leaf) { + return unwrap().getFirstSimpleByName(leaf); } @Override public MutableCompositeNode asMutable() { - return unwrap(null).asMutable(); + return unwrap().asMutable(); } @Override public QName getKey() { - return unwrap(null).getKey(); + return unwrap().getKey(); } @Override - public List> setValue(List> value) { - return unwrap(null).setValue(value); + public List> setValue(final List> value) { + return unwrap().setValue(value); } @Override public int size() { - return unwrap(null).size(); + return unwrap().size(); } @Override public boolean isEmpty() { - return unwrap(null).isEmpty(); + return unwrap().isEmpty(); } @Override - public boolean containsKey(Object key) { - return unwrap(null).containsKey(key); + public boolean containsKey(final Object key) { + return unwrap().containsKey(key); } @Override - public boolean containsValue(Object value) { - return unwrap(null).containsValue(value); + public boolean containsValue(final Object value) { + return unwrap().containsValue(value); } @Override - public List> get(Object key) { - return unwrap(null).get(key); + public List> get(final Object key) { + return unwrap().get(key); } @Override - public List> put(QName key, List> value) { - return unwrap(null).put(key, value); + public List> put(final QName key, final List> value) { + return unwrap().put(key, value); } @Override - public List> remove(Object key) { - return unwrap(null).remove(key); + public List> remove(final Object key) { + return unwrap().remove(key); } @Override - public void putAll(Map>> m) { - unwrap(null).putAll(m); + public void putAll(final Map>> m) { + unwrap().putAll(m); } @Override public void clear() { - unwrap(null).clear(); + unwrap().clear(); } @Override public Set keySet() { - return unwrap(null).keySet(); + return unwrap().keySet(); } @Override public Collection>> values() { - return unwrap(null).values(); + return unwrap().values(); } @Override public Set>>> entrySet() { - return unwrap(null).entrySet(); + return unwrap().entrySet(); } }