BUG-3252 : added a check for augmented transitive attributes. 09/20709/1
authorDana Kutenicsova <dkutenic@cisco.com>
Mon, 18 May 2015 13:04:55 +0000 (15:04 +0200)
committerDana Kutenicsova <dkutenic@cisco.com>
Tue, 19 May 2015 09:50:46 +0000 (09:50 +0000)
Change-Id: I6e8636cec435da937ddabd78f7f5bcaa5edb2a89
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
(cherry picked from commit 5c075582bf73261ec558f8fc009215e9eade8fcf)

bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/AttributeOperations.java

index de7bd5cc878c025c7a4100598391bc42da7f00fb..c997046849585d5afc7fec9acfabd7ae7aaf0ff9 100644 (file)
@@ -33,6 +33,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.as.path.segment.c.segment.a.list._case.a.list.AsSequence;
 import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeIdentifier;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.NodeWithValue;
 import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.PathArgument;
@@ -245,6 +246,16 @@ final class AttributeOperations {
     }
 
     private boolean isTransitiveAttribute(final DataContainerChild<? extends PathArgument, ?> child) {
+        if (child.getIdentifier() instanceof AugmentationIdentifier) {
+            final AugmentationIdentifier ai = (AugmentationIdentifier) child.getIdentifier();
+            for (final QName name : ai.getPossibleChildNames()) {
+                LOG.trace("Augmented QNAME {}", name);
+                if (TRANSITIVES.contains(name)) {
+                    return true;
+                }
+            }
+            return false;
+        }
         if (TRANSITIVES.contains(child.getNodeType())) {
             return true;
         }