X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;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=1426089360ef2bd3c8e0530341e0b66cff8ee81f;hp=b7a21cb022aa59011f6a66314d772e5e867fd911;hb=af7ad35c9f574ca6ecbf18c505d3112aea2f58ac;hpb=9468a50a8108ba5834e57b318bad7778cb31df12 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; + } }