Class SchemaUtils


  • public final class SchemaUtils
    extends Object
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static boolean belongsToCaseAugment​(org.opendaylight.yangtools.yang.model.api.CaseSchemaNode caseNode, org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier childToProcess)  
      static Optional<org.opendaylight.yangtools.yang.model.api.CaseSchemaNode> detectCase​(org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode schema, org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?> child)  
      static Collection<org.opendaylight.yangtools.yang.model.api.SchemaNode> findChildSchemaNodesByQName​(org.opendaylight.yangtools.yang.model.api.SchemaNode node, org.opendaylight.yangtools.yang.common.QName qname)
      Find child schema node identified by its QName within a provided schema node.
      static org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode findCorrespondingAugment​(org.opendaylight.yangtools.yang.model.api.DataSchemaNode parent, org.opendaylight.yangtools.yang.model.api.DataSchemaNode child)
      Tries to find in parent which is dealed as augmentation target node with QName as child.
      static @Nullable org.opendaylight.yangtools.yang.model.api.SchemaNode findDataChildSchemaByQName​(org.opendaylight.yangtools.yang.model.api.SchemaNode node, org.opendaylight.yangtools.yang.common.QName qname)
      Find child data schema node identified by its QName within a provided schema node.
      static org.opendaylight.yangtools.yang.model.api.SchemaNode findDataParentSchemaOnPath​(org.opendaylight.yangtools.yang.model.api.SchemaContext schemaContext, org.opendaylight.yangtools.yang.model.api.SchemaPath path)
      Finds schema node for given path in schema context.
      static Optional<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> findFirstSchema​(org.opendaylight.yangtools.yang.common.QName qname, Iterable<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> dataSchemaNode)
      Find the first schema with specified QName.
      static Collection<org.opendaylight.yangtools.yang.model.api.SchemaNode> findParentSchemaNodesOnPath​(org.opendaylight.yangtools.yang.model.api.SchemaContext schemaContext, org.opendaylight.yangtools.yang.model.api.SchemaPath path)
      Finds schema node for given path in schema context.
      static org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode findSchemaForAugment​(org.opendaylight.yangtools.yang.model.api.AugmentationTarget schema, Set<org.opendaylight.yangtools.yang.common.QName> qnames)  
      static org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode findSchemaForAugment​(org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode schema, Set<org.opendaylight.yangtools.yang.common.QName> qnames)  
      static org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode schema, org.opendaylight.yangtools.yang.common.QName childPartialQName)  
      static org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema, org.opendaylight.yangtools.yang.common.QName qname)
      Find child schema node identified by its QName within a provided schema node.
      static @Nullable org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema, org.opendaylight.yangtools.yang.common.QName qname, boolean strictMode)  
      static org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema, org.opendaylight.yangtools.yang.common.QName qname, Iterable<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> childNodes)  
      static Set<org.opendaylight.yangtools.yang.common.QName> getChildNodesRecursive​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer nodeContainer)
      Recursively list all child nodes.
      static Set<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> getRealSchemasForAugment​(org.opendaylight.yangtools.yang.model.api.AugmentationTarget targetSchema, org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode augmentSchema)
      Retrieves real schemas for augmented child node.
      static Set<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> getRealSchemasForAugment​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer targetSchema, org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode augmentSchema)  
      static Map<org.opendaylight.yangtools.yang.common.QName,​org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode> mapChildElementsFromAugments​(org.opendaylight.yangtools.yang.model.api.AugmentationTarget schema)
      Recursively find all child nodes that come from augmentations.
      static Map<org.opendaylight.yangtools.yang.common.QName,​org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode> mapChildElementsFromChoices​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema)
      Recursively find all child nodes that come from choices.
    • Method Detail

      • findFirstSchema

        public static Optional<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> findFirstSchema​(org.opendaylight.yangtools.yang.common.QName qname,
                                                                                                         Iterable<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> dataSchemaNode)
        Find the first schema with specified QName.
        Parameters:
        qname - schema node to find
        dataSchemaNode - Iterable of schemaNodes to look through
        Returns:
        schema node with newest revision or absent if no schema node with matching qname is found
      • findSchemaForChild

        public static org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema,
                                                                                                  org.opendaylight.yangtools.yang.common.QName qname)
        Find child schema node identified by its QName within a provided schema node.
        Parameters:
        schema - schema for parent node - search root
        qname - qname(with or without a revision) of a child node to be found in the parent schema
        Returns:
        found schema node
        Throws:
        IllegalStateException - if the child was not found in parent schema node
      • findSchemaForChild

        public static @Nullable org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema,
                                                                                                            org.opendaylight.yangtools.yang.common.QName qname,
                                                                                                            boolean strictMode)
      • findSchemaForChild

        public static org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema,
                                                                                                  org.opendaylight.yangtools.yang.common.QName qname,
                                                                                                  Iterable<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> childNodes)
      • findSchemaForChild

        public static org.opendaylight.yangtools.yang.model.api.DataSchemaNode findSchemaForChild​(org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode schema,
                                                                                                  org.opendaylight.yangtools.yang.common.QName childPartialQName)
      • findSchemaForAugment

        public static org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode findSchemaForAugment​(org.opendaylight.yangtools.yang.model.api.AugmentationTarget schema,
                                                                                                            Set<org.opendaylight.yangtools.yang.common.QName> qnames)
      • findSchemaForAugment

        public static org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode findSchemaForAugment​(org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode schema,
                                                                                                            Set<org.opendaylight.yangtools.yang.common.QName> qnames)
      • mapChildElementsFromChoices

        public static Map<org.opendaylight.yangtools.yang.common.QName,​org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode> mapChildElementsFromChoices​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer schema)
        Recursively find all child nodes that come from choices.
        Parameters:
        schema - schema
        Returns:
        Map with all child nodes, to their most top augmentation
      • mapChildElementsFromAugments

        public static Map<org.opendaylight.yangtools.yang.common.QName,​org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode> mapChildElementsFromAugments​(org.opendaylight.yangtools.yang.model.api.AugmentationTarget schema)
        Recursively find all child nodes that come from augmentations.
        Parameters:
        schema - schema
        Returns:
        Map with all child nodes, to their most top augmentation
      • getChildNodesRecursive

        public static Set<org.opendaylight.yangtools.yang.common.QName> getChildNodesRecursive​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer nodeContainer)
        Recursively list all child nodes. In case of choice, augment and cases, step in.
        Parameters:
        nodeContainer - node container
        Returns:
        set of QNames
      • getRealSchemasForAugment

        public static Set<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> getRealSchemasForAugment​(org.opendaylight.yangtools.yang.model.api.AugmentationTarget targetSchema,
                                                                                                             org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode augmentSchema)
        Retrieves real schemas for augmented child node.

        Schema of the same child node from augment, and directly from target is not the same. Schema of child node from augment is incomplete, therefore its useless for XML/NormalizedNode translation.

        Parameters:
        targetSchema - target schema
        augmentSchema - augment schema
        Returns:
        set of nodes
      • getRealSchemasForAugment

        public static Set<org.opendaylight.yangtools.yang.model.api.DataSchemaNode> getRealSchemasForAugment​(org.opendaylight.yangtools.yang.model.api.DataNodeContainer targetSchema,
                                                                                                             org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode augmentSchema)
      • detectCase

        public static Optional<org.opendaylight.yangtools.yang.model.api.CaseSchemaNode> detectCase​(org.opendaylight.yangtools.yang.model.api.ChoiceSchemaNode schema,
                                                                                                    org.opendaylight.yangtools.yang.data.api.schema.DataContainerChild<?,​?> child)
      • belongsToCaseAugment

        public static boolean belongsToCaseAugment​(org.opendaylight.yangtools.yang.model.api.CaseSchemaNode caseNode,
                                                   org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier.AugmentationIdentifier childToProcess)
      • findCorrespondingAugment

        public static org.opendaylight.yangtools.yang.model.api.AugmentationSchemaNode findCorrespondingAugment​(org.opendaylight.yangtools.yang.model.api.DataSchemaNode parent,
                                                                                                                org.opendaylight.yangtools.yang.model.api.DataSchemaNode child)
        Tries to find in parent which is dealed as augmentation target node with QName as child. If such node is found then it is returned, else null.
        Parameters:
        parent - parent node
        child - child node
        Returns:
        augmentation schema
      • findDataParentSchemaOnPath

        public static org.opendaylight.yangtools.yang.model.api.SchemaNode findDataParentSchemaOnPath​(org.opendaylight.yangtools.yang.model.api.SchemaContext schemaContext,
                                                                                                      org.opendaylight.yangtools.yang.model.api.SchemaPath path)
        Finds schema node for given path in schema context. This method performs lookup in the namespace of all leafs, leaf-lists, lists, containers, choices, rpcs, actions, notifications, anydatas, and anyxmls according to Rfc6050/Rfc7950 section 6.2.1.
        Parameters:
        schemaContext - schema context
        path - path
        Returns:
        schema node on path
      • findDataChildSchemaByQName

        public static @Nullable org.opendaylight.yangtools.yang.model.api.SchemaNode findDataChildSchemaByQName​(org.opendaylight.yangtools.yang.model.api.SchemaNode node,
                                                                                                                org.opendaylight.yangtools.yang.common.QName qname)
        Find child data schema node identified by its QName within a provided schema node. This method performs lookup in the namespace of all leafs, leaf-lists, lists, containers, choices, rpcs, actions, notifications, anydatas and anyxmls according to RFC6050/RFC7950 section 6.2.1.
        Parameters:
        node - schema node
        qname - QName
        Returns:
        data child schema node
        Throws:
        IllegalArgumentException - if the schema node does not allow children
      • findParentSchemaNodesOnPath

        public static Collection<org.opendaylight.yangtools.yang.model.api.SchemaNode> findParentSchemaNodesOnPath​(org.opendaylight.yangtools.yang.model.api.SchemaContext schemaContext,
                                                                                                                   org.opendaylight.yangtools.yang.model.api.SchemaPath path)
        Finds schema node for given path in schema context. This method performs lookup in both the namespace of groupings and the namespace of all leafs, leaf-lists, lists, containers, choices, rpcs, actions, notifications, anydatas and anyxmls according to Rfc6050/Rfc7950 section 6.2.1.

        This method returns collection of SchemaNodes, because name conflicts can occur between the namespace of groupings and namespace of data nodes. This method finds and collects all schema nodes that matches supplied SchemaPath and returns them all as collection of schema nodes.

        Parameters:
        schemaContext - schema context
        path - path
        Returns:
        collection of schema nodes on path
      • findChildSchemaNodesByQName

        public static Collection<org.opendaylight.yangtools.yang.model.api.SchemaNode> findChildSchemaNodesByQName​(org.opendaylight.yangtools.yang.model.api.SchemaNode node,
                                                                                                                   org.opendaylight.yangtools.yang.common.QName qname)
        Find child schema node identified by its QName within a provided schema node. This method performs lookup in both the namespace of groupings and the namespace of all leafs, leaf-lists, lists, containers, choices, rpcs, actions, notifications, anydatas and anyxmls according to RFC6050/RFC7950 section 6.2.1.

        This method returns collection of SchemaNodes, because name conflicts can occur between the namespace of groupings and namespace of data nodes. This method finds and collects all schema nodes with supplied QName and returns them all as collection of schema nodes.

        Parameters:
        node - schema node
        qname - QName
        Returns:
        collection of child schema nodes
        Throws:
        IllegalArgumentException - if the schema node does not allow children