Class AbstractSchemaContext
- java.lang.Object
-
- org.opendaylight.yangtools.yang.model.spi.AbstractSchemaContext
-
- All Implemented Interfaces:
Immutable
,MutationBehaviour<Immutable>
,ActionNodeContainer
,AddedByUsesAware
,AugmentationTarget
,ContainerLike
,CopyableNode
,DataNodeContainer
,DataSchemaNode
,DocumentedNode
,DocumentedNode.WithStatus
,MustConstraintAware
,NotificationNodeContainer
,SchemaContext
,SchemaNode
,WhenConditionAware
- Direct Known Subclasses:
FilteringSchemaContextProxy
,SimpleSchemaContext
public abstract class AbstractSchemaContext extends Object implements SchemaContext
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.opendaylight.yangtools.yang.model.api.DocumentedNode
DocumentedNode.WithStatus
-
-
Field Summary
Fields Modifier and Type Field Description static Comparator<Module>
NAME_REVISION_COMPARATOR
AModule
comparator based onModuleLike.getName()
andQNameModuleAware.getRevision()
, ordering modules lexicographically by their name and then in order of descending revision.static Comparator<Module>
REVISION_COMPARATOR
AModule
comparator based onQNameModuleAware.getRevision()
, placing latest revision first.-
Fields inherited from interface org.opendaylight.yangtools.yang.model.api.SchemaContext
NAME
-
-
Constructor Summary
Constructors Constructor Description AbstractSchemaContext()
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected static TreeSet<Module>
createModuleSet()
Create a TreeSet for containing Modules with the same name, such that the set is ordered byREVISION_COMPARATOR
.DataSchemaNode
dataChildByName(QName name)
Returns the child node corresponding to the specified name.Optional<? extends Module>
findModule(String name, Optional<Revision> revision)
Returns module instance (from the context) with specified name and an optional revision.Optional<Module>
findModule(QNameModule qnameModule)
Returns the module matching specifiedQNameModule
, if present.Collection<? extends Module>
findModules(String name)
Returns module instances (from the context) with a concrete name.Collection<? extends Module>
findModules(XMLNamespace namespace)
Returns module instance (from the context) with concrete namespace.Collection<? extends DataSchemaNode>
getChildNodes()
Returns set of all child nodes defined within this DataNodeContainer.Collection<? extends DataSchemaNode>
getDataDefinitions()
Returns data schema node instances which represents direct subnodes (like leaf, leaf-list, list, container) in all YANG modules in the context.Collection<? extends IdentitySchemaNode>
getDerivedIdentities(IdentitySchemaNode identity)
Get identities derived from a selected identity.Collection<? extends ExtensionDefinition>
getExtensions()
Returns extension definition instances which are defined as the direct subelements in all YANG modules in the context.Collection<? extends GroupingDefinition>
getGroupings()
Returns set of all groupings defined within this DataNodeContainer.protected abstract Map<QNameModule,Module>
getModuleMap()
Returns the namespace+revision-to-module mapping.protected abstract SetMultimap<XMLNamespace,Module>
getNamespaceToModules()
Returns the namespace-to-module mapping.protected abstract SetMultimap<String,Module>
getNameToModules()
Returns the module name-to-module mapping.Collection<? extends NotificationDefinition>
getNotifications()
Return the set of notifications in this container, keyed by QName.Collection<? extends RpcDefinition>
getOperations()
Returns rpc definition instances which are defined as the direct subelements in all YANG modules in the context.Collection<? extends TypeDefinition<?>>
getTypeDefinitions()
Returns set of all newly defined types within this DataNodeContainer.Collection<? extends UnknownSchemaNode>
getUnknownSchemaNodes()
Returns unknown schema nodes which belongs to this instance.-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.DataNodeContainer
findDataChildByName, findDataChildByName, findDataTreeChild, findDataTreeChild, getDataChildByName
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.DataSchemaNode
isConfiguration
-
Methods inherited from interface org.opendaylight.yangtools.yang.model.api.SchemaContext
effectiveConfig, findAction, findDataTreeChild, findModule, findModule, findModule, findModule, findModule, findNotification, getActions, getAvailableAugmentations, getDescription, getModules, getMustConstraints, getPath, getQName, getReference, getStatus, getUses, getWhenCondition, isAddedByUses, isAugmenting
-
-
-
-
Field Detail
-
REVISION_COMPARATOR
public static final Comparator<Module> REVISION_COMPARATOR
AModule
comparator based onQNameModuleAware.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
AModule
comparator based onModuleLike.getName()
andQNameModuleAware.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.
-
-
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 byREVISION_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 interfaceSchemaContext
- Returns:
- set of
DataSchemaNode
instances which represents YANG data nodes at the module top level
-
getNotifications
public Collection<? extends NotificationDefinition> getNotifications()
Description copied from interface:NotificationNodeContainer
Return the set of notifications in this container, keyed by QName. RFC7950 specifies thatAugmentationSchemaNode
s,GroupingDefinition
s,ListSchemaNode
s andContainerSchemaNode
s can also containNotificationDefinition
s.- Specified by:
getNotifications
in interfaceNotificationNodeContainer
- Returns:
- set of notification nodes
-
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 interfaceSchemaContext
- Returns:
- set of
RpcDefinition
instances which represents nodes defined viarpc
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 interfaceSchemaContext
- Returns:
- set of
ExtensionDefinition
instances which represents nodes defined viaextension
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 interfaceSchemaContext
- Parameters:
name
- string with the module namerevision
- date of the module revision- Returns:
- module instance which has name and revision the same as are the values specified in parameters
name
andrevision
.
-
findModule
public Optional<Module> findModule(QNameModule qnameModule)
Description copied from interface:SchemaContext
Returns the module matching specifiedQNameModule
, if present.- Specified by:
findModule
in interfaceSchemaContext
- Parameters:
qnameModule
- requested QNameModule- Returns:
- Module, if present.
-
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 interfaceSchemaContext
- Parameters:
namespace
- XMLNamespace instance with specified namespace- Returns:
- module instance which has namespace equal to the
namespace
ornull
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 interfaceSchemaContext
- 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 interfaceDocumentedNode
- Returns:
- collection of unknown schema nodes defined under this node.
-
getTypeDefinitions
public Collection<? extends TypeDefinition<?>> getTypeDefinitions()
Description copied from interface:DataNodeContainer
Returns set of all newly defined types within this DataNodeContainer.- Specified by:
getTypeDefinitions
in interfaceDataNodeContainer
- Returns:
- typedef statements in lexicographical order
-
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 ratherDataSchemaNode
s, henceChoiceSchemaNode
andCaseSchemaNode
are present instead of their children. This is consistent withschema tree
.- Specified by:
getChildNodes
in interfaceDataNodeContainer
- Returns:
- child nodes in lexicographical order
-
getGroupings
public Collection<? extends GroupingDefinition> getGroupings()
Description copied from interface:DataNodeContainer
Returns set of all groupings defined within this DataNodeContainer.- Specified by:
getGroupings
in interfaceDataNodeContainer
- Returns:
- grouping statements 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 ratherDataSchemaNode
s, henceChoiceSchemaNode
andCaseSchemaNode
are returned instead of their matching children. This is consistent withschema tree
.- Specified by:
dataChildByName
in interfaceDataNodeContainer
- Parameters:
name
- QName of child- Returns:
- child node of this DataNodeContainer if child with given name is present, null otherwise
-
getDerivedIdentities
public Collection<? extends IdentitySchemaNode> getDerivedIdentities(IdentitySchemaNode identity)
Description copied from interface:SchemaContext
Get identities derived from a selected identity.- Specified by:
getDerivedIdentities
in interfaceSchemaContext
- Parameters:
identity
- base identity- Returns:
- collection of identities derived from this identity
-
-