Interface YangNamespaceContext

All Superinterfaces:
Immutable, Serializable
All Known Implementing Classes:
BiMapYangNamespaceContext, ModuleNameNamespaceContext

public interface YangNamespaceContext extends Immutable, Serializable
Interface for mapping between String prefixes and QNameModule namespaces. The conceptual model matches prefix mapping inside a YANG module as defined through the use of prefix and import statements and detailed in RFC7950 Section 7.1.4.

Each namespace context has a set of prefix/namespace mappings. A namespace can be bound to multiple prefixes at the same time.

  • Method Details

    • namespaceForPrefix

      @Nullable QNameModule namespaceForPrefix(String prefix)
      Return QNameModule to which a particular prefix is bound.
      Parameters:
      prefix - Prefix to look up
      Returns:
      QNameModule bound to specified prefix, or null
      Throws:
      NullPointerException - if prefix is null
    • findNamespaceForPrefix

      default @NonNull Optional<QNameModule> findNamespaceForPrefix(String prefix)
      Return QNameModule to which a particular prefix is bound.
      Parameters:
      prefix - Prefix to look up
      Returns:
      QNameModule bound to specified prefix
      Throws:
      NullPointerException - if prefix is null
      Implementation Requirements:
      Default implementation defers to namespaceForPrefix(String)
    • prefixForNamespace

      @Nullable String prefixForNamespace(QNameModule namespace)
      Return a prefix to which a particular QNameModule is bound. If a namespace is bound to multiple prefixes, it is left unspecified which of those prefixes is returned.
      Parameters:
      namespace - QNameModule to look up
      Returns:
      Prefix to which the QNameModule is bound, or null
      Throws:
      NullPointerException - if module is null
    • findPrefixForNamespace

      default @NonNull Optional<String> findPrefixForNamespace(QNameModule namespace)
      Return a prefix to which a particular QNameModule is bound. If a namespace is bound to multiple prefixes, it is left unspecified which of those prefixes is returned.
      Parameters:
      namespace - QNameModule to look up
      Returns:
      Prefix to which the QNameModule is bound
      Throws:
      NullPointerException - if module is null
      Implementation Requirements:
      Default implementation defers to prefixForNamespace(QNameModule)
    • createQName

      default @NonNull QName createQName(String prefix, String localName)
      Create a QName by resolving a prefix against currently-bound prefixes and combining it with specified local name.
      Parameters:
      prefix - Namespace prefix
      localName - QName local name
      Returns:
      A QName.
      Throws:
      NullPointerException - if any argument is null
      IllegalArgumentException - if localName does not conform to local name requirements or if the prefix is not bound in this context.
      Implementation Requirements:
      Default implementation defers to namespaceForPrefix(String) and constructs QName based on its return.