From 49bae5b3eb5ddab30cf77d63a341bf59798d5c10 Mon Sep 17 00:00:00 2001 From: Tony Tkacik Date: Tue, 12 Nov 2013 19:52:40 +0100 Subject: [PATCH] Bugfix in CompositeNode implementation, InstanceIdentifier builder. Change-Id: I546219be7348da37bb4a35d4cda208942b155b18 Signed-off-by: Tony Tkacik --- .../org/opendaylight/yangtools/concepts/Deserializer.java | 6 ++++++ .../yangtools/concepts/InvertibleTransformator.java | 7 +++++++ .../org/opendaylight/yangtools/concepts/Serializer.java | 5 +++++ .../org/opendaylight/yangtools/concepts/Transformator.java | 6 ++++++ .../yangtools/yang/binding/InstanceIdentifier.java | 4 ++-- .../yangtools/yang/data/impl/CompositeNodeTOImpl.java | 6 ++++++ 6 files changed, 32 insertions(+), 2 deletions(-) create mode 100644 concepts/src/main/java/org/opendaylight/yangtools/concepts/Deserializer.java create mode 100644 concepts/src/main/java/org/opendaylight/yangtools/concepts/InvertibleTransformator.java create mode 100644 concepts/src/main/java/org/opendaylight/yangtools/concepts/Serializer.java create mode 100644 concepts/src/main/java/org/opendaylight/yangtools/concepts/Transformator.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 index 0000000000..f7aa872298 --- /dev/null +++ b/concepts/src/main/java/org/opendaylight/yangtools/concepts/Deserializer.java @@ -0,0 +1,6 @@ +package org.opendaylight.yangtools.concepts; + +public interface Deserializer { + + 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 index 0000000000..d047747930 --- /dev/null +++ b/concepts/src/main/java/org/opendaylight/yangtools/concepts/InvertibleTransformator.java @@ -0,0 +1,7 @@ +package org.opendaylight.yangtools.concepts; + +public interface InvertibleTransformator extends Transformator{ + + 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 index 0000000000..ea89231752 --- /dev/null +++ b/concepts/src/main/java/org/opendaylight/yangtools/concepts/Serializer.java @@ -0,0 +1,5 @@ +package org.opendaylight.yangtools.concepts; + +public interface Serializer { + 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 index 0000000000..7c4cc718c2 --- /dev/null +++ b/concepts/src/main/java/org/opendaylight/yangtools/concepts/Transformator.java @@ -0,0 +1,6 @@ +package org.opendaylight.yangtools.concepts; + +public interface Transformator { + + P transform(I input); +} diff --git a/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java b/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java index b49ff9ded5..4bf91e32ea 100644 --- a/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java +++ b/yang/yang-binding/src/main/java/org/opendaylight/yangtools/yang/binding/InstanceIdentifier.java @@ -178,8 +178,8 @@ public final class InstanceIdentifier implements Path builder(InstanceIdentifier basePath) { - return new BuilderImpl(basePath.path,basePath.targetType); + public static InstanceIdentifierBuilder builder(InstanceIdentifier basePath) { + return new BuilderImpl(basePath.path,basePath.targetType); } private static final class BuilderImpl implements InstanceIdentifierBuilder { 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 5eb8b5c32f..1f02c14a6a 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 @@ -77,6 +77,9 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement @Override public List getCompositesByName(QName children) { List> toFilter = getNodeMap().get(children); + if(toFilter == null) { + return Collections.emptyList(); + } List list = new ArrayList(); for (Node node : toFilter) { if (node instanceof CompositeNode) { @@ -89,6 +92,9 @@ public class CompositeNodeTOImpl extends AbstractNodeTO>> implement @Override public List> getSimpleNodesByName(QName children) { List> toFilter = getNodeMap().get(children); + if(toFilter == null) { + return Collections.emptyList(); + } List> list = new ArrayList>(); for (Node node : toFilter) { -- 2.36.6