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;h=1426089360ef2bd3c8e0530341e0b66cff8ee81f;hb=3dcdf33c8cbc2eba8b2e6cb0f110a17edfe57ec4;hp=b7a21cb022aa59011f6a66314d772e5e867fd911;hpb=a35fe9ae149bd4c7089d48665ccc8bff580bce53;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 index b7a21cb022..1426089360 100644 --- 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 @@ -4,11 +4,16 @@ 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.DataNodeContainer; import org.opendaylight.yangtools.yang.model.api.DataSchemaNode; +import org.opendaylight.yangtools.yang.model.api.TypeDefinition; import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode; import com.google.common.base.Preconditions; +import org.opendaylight.yangtools.yang.model.api.SchemaContext; +import org.opendaylight.yangtools.yang.model.api.SchemaPath; + public class YangSchemaUtils { public static final String AUGMENT_IDENTIFIER = "augment-identifier"; @@ -41,4 +46,25 @@ public class YangSchemaUtils { } return null; } + + + public static TypeDefinition findTypeDefinition(SchemaContext context, SchemaPath path) { + List arguments = path.getPath(); + QName first = arguments.get(0); + QName typeQName = arguments.get(arguments.size() -1); + DataNodeContainer previous = context.findModuleByNamespaceAndRevision(first.getNamespace(), first.getRevision()); + if(previous == null) { + return null; + } + Preconditions.checkArgument(arguments.size() == 1); + for (QName qName : arguments) { + //previous.getDataChildByName(qName); + } + for(TypeDefinition typedef : previous.getTypeDefinitions()) { + if(typedef.getQName().equals(typeQName)) { + return typedef; + } + } + return null; + } }