X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fimpl%2Futil%2FYangSchemaUtils.java;fp=opendaylight%2Fmd-sal%2Fsal-binding-broker%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fsal%2Fbinding%2Fimpl%2Futil%2FYangSchemaUtils.java;h=b7a21cb022aa59011f6a66314d772e5e867fd911;hb=c5aaa057429dbceb764a50c24b2f4d21f05e1fc3;hp=0000000000000000000000000000000000000000;hpb=4186023bf290ceaeaccebd627ee8ea68b92dc1ed;p=controller.git diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/util/YangSchemaUtils.java b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/util/YangSchemaUtils.java new file mode 100644 index 0000000000..b7a21cb022 --- /dev/null +++ b/opendaylight/md-sal/sal-binding-broker/src/main/java/org/opendaylight/controller/sal/binding/impl/util/YangSchemaUtils.java @@ -0,0 +1,44 @@ +package org.opendaylight.controller.sal.binding.impl.util; + +import java.util.List; + +import org.opendaylight.yangtools.yang.common.QName; +import org.opendaylight.yangtools.yang.model.api.AugmentationSchema; +import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; + +import com.google.common.base.Preconditions; + +public class YangSchemaUtils { + + public static final String AUGMENT_IDENTIFIER = "augment-identifier"; + + + public YangSchemaUtils() { + throw new UnsupportedOperationException("Helper class. Instantiation is prohibited"); + } + + + public static QName getAugmentationQName(AugmentationSchema augmentation) { + Preconditions.checkNotNull(augmentation, "Augmentation must not be null."); + QName identifier = getAugmentationIdentifier(augmentation); + if(identifier != null) { + return identifier; + } + for(DataSchemaNode child : augmentation.getChildNodes()) { + // FIXME: Return true name + return QName.create(child.getQName(), "foo_augment"); + } + // FIXME: Allways return a qname with module namespace. + return null; + } + + public static QName getAugmentationIdentifier(AugmentationSchema augmentation) { + for(UnknownSchemaNode extension : augmentation.getUnknownSchemaNodes()) { + if(AUGMENT_IDENTIFIER.equals(extension.getNodeType().getLocalName())) { + return extension.getQName(); + } + } + return null; + } +}