Class AbstractSchemaContext

    • Field Detail

      • REVISION_COMPARATOR

        public static final Comparator<Module> REVISION_COMPARATOR
        A Module comparator based on QNameModuleAware.getRevision(), placing latest revision first. Note this comparator does not take into account module name and so two modules with different names but same revisions compare as equal.
      • NAME_REVISION_COMPARATOR

        public static final Comparator<Module> NAME_REVISION_COMPARATOR
        A Module comparator based on ModuleLike.getName() and QNameModuleAware.getRevision(), ordering modules lexicographically by their name and then in order of descending revision. This comparator assumes that the combination of these two attributes is sufficient to be consistent with hashCode/equals.
    • Constructor Detail

      • AbstractSchemaContext

        public AbstractSchemaContext()
    • Method Detail

      • createModuleSet

        protected static final TreeSet<Module> createModuleSet()
        Create a TreeSet for containing Modules with the same name, such that the set is ordered by REVISION_COMPARATOR.
        Returns:
        A fresh TreeSet instance.
      • getNamespaceToModules

        protected abstract SetMultimap<XMLNamespace,​Module> getNamespaceToModules()
        Returns the namespace-to-module mapping.
        Returns:
        Map of modules where key is namespace
      • getNameToModules

        protected abstract SetMultimap<String,​Module> getNameToModules()
        Returns the module name-to-module mapping.
        Returns:
        Map of modules where key is name of module
      • getModuleMap

        protected abstract Map<QNameModule,​Module> getModuleMap()
        Returns the namespace+revision-to-module mapping.
        Returns:
        Map of modules where key is Module's QNameModule.
      • getDataDefinitions

        public Collection<? extends DataSchemaNode> getDataDefinitions()
        Description copied from interface: SchemaContext
        Returns data schema node instances which represents direct subnodes (like leaf, leaf-list, list, container) in all YANG modules in the context.
        Specified by:
        getDataDefinitions in interface SchemaContext
        Returns:
        set of DataSchemaNode instances which represents YANG data nodes at the module top level
      • getOperations

        public Collection<? extends RpcDefinition> getOperations()
        Description copied from interface: SchemaContext
        Returns rpc definition instances which are defined as the direct subelements in all YANG modules in the context.
        Specified by:
        getOperations in interface SchemaContext
        Returns:
        set of RpcDefinition instances which represents nodes defined via rpc YANG keyword
      • getExtensions

        public Collection<? extends ExtensionDefinition> getExtensions()
        Description copied from interface: SchemaContext
        Returns extension definition instances which are defined as the direct subelements in all YANG modules in the context.
        Specified by:
        getExtensions in interface SchemaContext
        Returns:
        set of ExtensionDefinition instances which represents nodes defined via extension YANG keyword
      • findModule

        public Optional<? extends Module> findModule​(String name,
                                                     Optional<Revision> revision)
        Description copied from interface: SchemaContext
        Returns module instance (from the context) with specified name and an optional revision.
        Specified by:
        findModule in interface SchemaContext
        Parameters:
        name - string with the module name
        revision - date of the module revision
        Returns:
        module instance which has name and revision the same as are the values specified in parameters name and revision.
      • findModules

        public Collection<? extends Module> findModules​(XMLNamespace namespace)
        Description copied from interface: SchemaContext
        Returns module instance (from the context) with concrete namespace. Returned Set is required to have its iteration order guarantee that the latest revision is encountered first.
        Specified by:
        findModules in interface SchemaContext
        Parameters:
        namespace - XMLNamespace instance with specified namespace
        Returns:
        module instance which has namespace equal to the namespace or null in other cases
      • findModules

        public Collection<? extends Module> findModules​(String name)
        Description copied from interface: SchemaContext
        Returns module instances (from the context) with a concrete name. Returned Set is required to have its iteration order guarantee that the latest revision is encountered first.
        Specified by:
        findModules in interface SchemaContext
        Parameters:
        name - string with the module name
        Returns:
        set of module instances with specified name.
      • getUnknownSchemaNodes

        public Collection<? extends UnknownSchemaNode> getUnknownSchemaNodes()
        Description copied from interface: DocumentedNode
        Returns unknown schema nodes which belongs to this instance. Default implementation returns an empty collection.
        Specified by:
        getUnknownSchemaNodes in interface DocumentedNode
        Returns:
        collection of unknown schema nodes defined under this node.
      • getChildNodes

        public Collection<? extends DataSchemaNode> getChildNodes()
        Description copied from interface: DataNodeContainer
        Returns set of all child nodes defined within this DataNodeContainer. Although the return type is a collection, each node is guaranteed to be present at most once.

        Note that the nodes returned are NOT data nodes, but rather DataSchemaNodes, hence ChoiceSchemaNode and CaseSchemaNode are present instead of their children. This is consistent with schema tree.

        Specified by:
        getChildNodes in interface DataNodeContainer
        Returns:
        child nodes in lexicographical order
      • dataChildByName

        public DataSchemaNode dataChildByName​(QName name)
        Description copied from interface: DataNodeContainer
        Returns the child node corresponding to the specified name.

        Note that the nodes searched are NOT data nodes, but rather DataSchemaNodes, hence ChoiceSchemaNode and CaseSchemaNode are returned instead of their matching children. This is consistent with schema tree.

        Specified by:
        dataChildByName in interface DataNodeContainer
        Parameters:
        name - QName of child
        Returns:
        child node of this DataNodeContainer if child with given name is present, null otherwise