Bugfix in CompositeNode implementation, InstanceIdentifier builder. 77/2677/1
authorTony Tkacik <ttkacik@cisco.com>
Tue, 12 Nov 2013 18:52:40 +0000 (19:52 +0100)
committerTony Tkacik <ttkacik@cisco.com>
Tue, 12 Nov 2013 18:52:40 +0000 (19:52 +0100)
Change-Id: I546219be7348da37bb4a35d4cda208942b155b18
Signed-off-by: Tony Tkacik <ttkacik@cisco.com>
concepts/src/main/java/org/opendaylight/yangtools/concepts/Deserializer.java [new file with mode: 0644]
concepts/src/main/java/org/opendaylight/yangtools/concepts/InvertibleTransformator.java [new file with mode: 0644]
concepts/src/main/java/org/opendaylight/yangtools/concepts/Serializer.java [new file with mode: 0644]
concepts/src/main/java/org/opendaylight/yangtools/concepts/Transformator.java [new file with mode: 0644]
yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java
yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/CompositeNodeTOImpl.java

diff --git a/concepts/src/main/java/org/opendaylight/yangtools/concepts/Deserializer.java b/concepts/src/main/java/org/opendaylight/yangtools/concepts/Deserializer.java
new file mode 100644 (file)
index 0000000..f7aa872
--- /dev/null
@@ -0,0 +1,6 @@
+package org.opendaylight.yangtools.concepts;
+
+public interface Deserializer<P,I> {
+
+    P deserialize(I input);
+}
diff --git a/concepts/src/main/java/org/opendaylight/yangtools/concepts/InvertibleTransformator.java b/concepts/src/main/java/org/opendaylight/yangtools/concepts/InvertibleTransformator.java
new file mode 100644 (file)
index 0000000..d047747
--- /dev/null
@@ -0,0 +1,7 @@
+package org.opendaylight.yangtools.concepts;
+
+public interface InvertibleTransformator<P, I> extends Transformator<P, I>{
+
+    I fromProduct(P product);
+
+}
diff --git a/concepts/src/main/java/org/opendaylight/yangtools/concepts/Serializer.java b/concepts/src/main/java/org/opendaylight/yangtools/concepts/Serializer.java
new file mode 100644 (file)
index 0000000..ea89231
--- /dev/null
@@ -0,0 +1,5 @@
+package org.opendaylight.yangtools.concepts;
+
+public interface Serializer<P,I> {
+    P serialize(I input);
+}
diff --git a/concepts/src/main/java/org/opendaylight/yangtools/concepts/Transformator.java b/concepts/src/main/java/org/opendaylight/yangtools/concepts/Transformator.java
new file mode 100644 (file)
index 0000000..7c4cc71
--- /dev/null
@@ -0,0 +1,6 @@
+package org.opendaylight.yangtools.concepts;
+
+public interface Transformator<P,I> {
+
+    P transform(I input);
+}
index b49ff9ded56081ee30296166c016a6159748dd85..4bf91e32ea9ed4c7e802c4007cae9bcfbb163ac5 100644 (file)
@@ -178,8 +178,8 @@ public final class InstanceIdentifier<T extends DataObject> implements Path<Inst
     }
 
     @SuppressWarnings({ "rawtypes", "unchecked" })
-    public static InstanceIdentifierBuilder<?> builder(InstanceIdentifier<?> basePath) {
-        return new BuilderImpl(basePath.path,basePath.targetType);
+    public static <T extends DataObject> InstanceIdentifierBuilder<T> builder(InstanceIdentifier<T> basePath) {
+        return new BuilderImpl<T>(basePath.path,basePath.targetType);
     }
 
     private static final class BuilderImpl<T extends DataObject> implements InstanceIdentifierBuilder<T> {
index 5eb8b5c32f502bc18a84d854d060468a663264fe..1f02c14a6aced550ba69728b2e2cfde0f8e898b5 100644 (file)
@@ -77,6 +77,9 @@ public class CompositeNodeTOImpl extends AbstractNodeTO<List<Node<?>>> implement
     @Override
     public List<CompositeNode> getCompositesByName(QName children) {
         List<Node<?>> toFilter = getNodeMap().get(children);
+        if(toFilter == null) {
+            return Collections.emptyList();
+        }
         List<CompositeNode> list = new ArrayList<CompositeNode>();
         for (Node<?> node : toFilter) {
             if (node instanceof CompositeNode) {
@@ -89,6 +92,9 @@ public class CompositeNodeTOImpl extends AbstractNodeTO<List<Node<?>>> implement
     @Override
     public List<SimpleNode<?>> getSimpleNodesByName(QName children) {
         List<Node<?>> toFilter = getNodeMap().get(children);
+        if(toFilter == null) {
+            return Collections.emptyList();
+        }
         List<SimpleNode<?>> list = new ArrayList<SimpleNode<?>>();
 
         for (Node<?> node : toFilter) {