X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2FCompositeNodeTOImpl.java;h=7d5b8bb330e8cd46966d4213ab62e1f0b58dbfc4;hb=6564d1d45ac3e4c1c1a9fff438f84cc2fd7a487c;hp=33779221e8d35f7208f148c87ffdbee13cd6eb7f;hpb=9a27ebc224426bbf7c83eb1f6ff8af0cca6a1954;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/CompositeNodeTOImpl.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/CompositeNodeTOImpl.java index 33779221e8..7d5b8bb330 100644 --- a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/CompositeNodeTOImpl.java +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/CompositeNodeTOImpl.java @@ -7,6 +7,10 @@ */ package org.opendaylight.yangtools.yang.data.impl; +import java.io.IOException; +import java.io.ObjectInputStream; +import java.io.ObjectOutputStream; +import java.io.Serializable; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; @@ -21,12 +25,17 @@ import org.opendaylight.yangtools.yang.data.api.ModifyAction; import org.opendaylight.yangtools.yang.data.api.MutableCompositeNode; import org.opendaylight.yangtools.yang.data.api.Node; import org.opendaylight.yangtools.yang.data.api.SimpleNode; +import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNodeContainer; /** * @author michal.rehak - * + * + * @deprecated Use one of the {@link NormalizedNodeContainer} implementations. */ -public class CompositeNodeTOImpl extends AbstractNodeTO>> implements CompositeNode { +@Deprecated +public class CompositeNodeTOImpl extends AbstractNodeTO>> implements CompositeNode, Serializable { + + private static final long serialVersionUID = 100L; private Map>> nodeMap = new HashMap<>(); @@ -36,7 +45,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement * use null to create top composite node (without parent) * @param value */ - public CompositeNodeTOImpl(QName qname, CompositeNode parent, List> value) { + public CompositeNodeTOImpl(final QName qname, final CompositeNode parent, final List> value) { super(qname, parent, value); init(); } @@ -48,11 +57,11 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement * @param value * @param modifyAction */ - public CompositeNodeTOImpl(QName qname, CompositeNode parent, List> value, ModifyAction modifyAction) { + public CompositeNodeTOImpl(final QName qname, final CompositeNode parent, final List> value, final ModifyAction modifyAction) { super(qname, parent, value, modifyAction); init(); } - + protected void init() { if (getValue() != null) { nodeMap = NodeUtils.buildNodeMap(getValue()); @@ -69,7 +78,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement } @Override - public SimpleNode getFirstSimpleByName(QName leafQName) { + public SimpleNode getFirstSimpleByName(final QName leafQName) { List> list = getSimpleNodesByName(leafQName); if (list.isEmpty()) { return null; @@ -78,7 +87,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement } @Override - public List getCompositesByName(QName children) { + public List getCompositesByName(final QName children) { List> toFilter = getNodeMap().get(children); if(toFilter == null) { return Collections.emptyList(); @@ -93,7 +102,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement } @Override - public List> getSimpleNodesByName(QName children) { + public List> getSimpleNodesByName(final QName children) { List> toFilter = getNodeMap().get(children); if(toFilter == null) { return Collections.emptyList(); @@ -109,7 +118,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement } @Override - public CompositeNode getFirstCompositeByName(QName container) { + public CompositeNode getFirstCompositeByName(final QName container) { List list = getCompositesByName(container); if (list.isEmpty()) { return null; @@ -121,7 +130,7 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement * @param leaf * @return TODO:: do we need this method? */ - public SimpleNode getFirstLeafByName(QName leaf) { + public SimpleNode getFirstLeafByName(final QName leaf) { List> list = getSimpleNodesByName(leaf); if (list.isEmpty()) { return null; @@ -130,13 +139,13 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement } @Override - public List getCompositesByName(String children) { - return getCompositesByName(new QName(getNodeType(), children)); + public List getCompositesByName(final String children) { + return getCompositesByName(QName.create(getNodeType(), children)); } @Override - public List> getSimpleNodesByName(String children) { - return getSimpleNodesByName(new QName(getNodeType(), children)); + public List> getSimpleNodesByName(final String children) { + return getSimpleNodesByName(QName.create(getNodeType(), children)); } @Override @@ -148,31 +157,26 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement public String toString() { return super.toString() + ", children.size = " + (getChildren() != null ? getChildren().size() : "n/a"); } - + @Override public void clear() { nodeMap.clear(); } - + @Override - public boolean containsKey(Object key) { + public boolean containsKey(final Object key) { return nodeMap.containsKey(key); } - + @Override - public boolean containsValue(Object value) { + public boolean containsValue(final Object value) { return nodeMap.containsValue(value); } - + @Override public Set>>> entrySet() { return nodeMap.entrySet(); } - - @Override - public boolean equals(Object obj) { - return super.equals(obj); - } @Override public int size() { @@ -185,22 +189,22 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement } @Override - public List> get(Object key) { + public List> get(final Object key) { return nodeMap.get(key); } @Override - public List> put(QName key, List> value) { + public List> put(final QName key, final List> value) { return nodeMap.put(key, value); } @Override - public List> remove(Object key) { + public List> remove(final Object key) { return nodeMap.remove(key); } @Override - public void putAll(Map>> m) { + public void putAll(final Map>> m) { nodeMap.putAll(m); } @@ -213,4 +217,26 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement public Collection>> values() { return nodeMap.values(); } + + // Serialization related + + private void readObject(final ObjectInputStream aStream) throws IOException, ClassNotFoundException { + aStream.defaultReadObject(); + QName qName = (QName)aStream.readObject(); + CompositeNode parent = (CompositeNode) aStream.readObject(); + @SuppressWarnings("unchecked") + List> value = (List>) aStream.readObject(); + ModifyAction modifyAction = (ModifyAction) aStream.readObject(); + + init(qName, parent, value, modifyAction); + } + + private void writeObject(final ObjectOutputStream aStream) throws IOException { + aStream.defaultWriteObject(); + //manually serialize superclass + aStream.writeObject(getQName()); + aStream.writeObject(getParent()); + aStream.writeObject(getValue()); + aStream.writeObject(getModificationAction()); + } }