Class StmtContextUtils
- java.lang.Object
-
- org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils
-
public final class StmtContextUtils extends Object
-
-
Method Summary
All Methods Static Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static boolean
checkFeatureSupport(StmtContext<?,?,?> stmtContext, Set<QName> supportedFeatures)
static SourceIdentifier
createSourceIdentifier(StmtContext<?,?,?> root)
static <A,D extends DeclaredStatement<A>>
Collection<StmtContext<A,D,?>>findAllDeclaredSubstatements(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
static <A,D extends DeclaredStatement<A>>
Collection<StmtContext<A,D,?>>findAllEffectiveSubstatements(StmtContext<?,?,?> stmtContext, Class<D> type)
static <A,D extends DeclaredStatement<A>>
Collection<StmtContext<A,D,?>>findAllSubstatements(StmtContext<?,?,?> stmtContext, Class<D> type)
static <D extends DeclaredStatement<?>>
StmtContext<?,?,?>findDeepFirstDeclaredSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
static StmtContext<?,?,?>
findFirstDeclaredSubstatement(StmtContext<?,?,?> stmtContext, int startIndex, Class<? extends DeclaredStatement<?>>... types)
static <A,D extends DeclaredStatement<A>>
StmtContext<A,?,?>findFirstDeclaredSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
static <D extends DeclaredStatement<?>>
StmtContext<?,?,?>findFirstDeclaredSubstatementOnSublevel(StmtContext<?,?,?> stmtContext, Class<D> declaredType, int sublevel)
static <A,D extends DeclaredStatement<A>>
StmtContext<A,?,?>findFirstEffectiveSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
static <A,D extends DeclaredStatement<A>>
StmtContext<A,?,?>findFirstSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
Searches for the first substatement of the specified type in the specified statement context.static <A,D extends DeclaredStatement<A>>
AfirstAttributeOf(Iterable<? extends StmtContext<?,?,?>> contexts, Class<D> declaredType)
static <A,D extends DeclaredStatement<A>>
AfirstAttributeOf(StmtContext<?,?,?> ctx, Class<D> declaredType)
static <A,D extends DeclaredStatement<A>>
AfirstSubstatementAttributeOf(StmtContext<?,?,?> ctx, Class<D> declaredType)
static Optional<Revision>
getLatestRevision(Iterable<? extends StmtContext<?,?,?>> subStmts)
static QNameModule
getModuleQNameByPrefix(StmtContext<?,?,?> ctx, String prefix)
static QNameModule
getRootModuleQName(StmtContext<?,?,?> ctx)
static boolean
hasAncestorOfType(StmtContext<?,?,?> ctx, Collection<StatementDefinition> ancestorTypes)
Checks whether at least one ancestor of a StatementContext matches one from a collection of statement definitions.static <A,D extends DeclaredStatement<A>>
booleanhasAncestorOfTypeWithChildOfType(StmtContext<?,?,?> ctx, StatementDefinition ancestorType, StatementDefinition ancestorChildType)
Checks whether all of StmtContext's ancestors of specified type have a child of specified type.static boolean
hasParentOfType(StmtContext<?,?,?> ctx, StatementDefinition parentType)
Checks whether the parent of StmtContext is of specified type.static boolean
isInExtensionBody(StmtContext<?,?,?> stmtCtx)
static boolean
isMandatoryNode(StmtContext<?,?,?> stmtCtx)
Checks whether statement context is a mandatory leaf, choice, anyxml, list or leaf-list according to RFC6020 or not.static boolean
isNonPresenceContainer(StmtContext<?,?,?> stmtCtx)
Checks whether statement context is a non-presence container or not.static boolean
isNotMandatoryNodeOfType(StmtContext<?,?,?> stmtCtx, StatementDefinition stmtDef)
Checks whether a statement context is a statement of supplied statement definition and whether it is not mandatory leaf, choice, anyxml, list or leaf-list according to RFC6020.static boolean
isPresenceContainer(StmtContext<?,?,?> stmtCtx)
Checks whether statement context is a presence container or not.static boolean
isUnknownStatement(StmtContext<?,?,?> stmtCtx)
Returns true if supplied statement context represents unknown statement, otherwise returns false.static boolean
isUnrecognizedStatement(StmtContext<?,?,?> stmtCtx)
Returns true if supplied statement context represents unrecognized statement, otherwise returns false.static QName
parseIdentifier(StmtContext<?,?,?> ctx, String str)
Parse a YANG identifier string in context of a statement.static QName
parseNodeIdentifier(StmtContext<?,?,?> ctx, String str)
Parse a YANG node identifier string in context of a statement.static QName
parseNodeIdentifier(StmtContext<?,?,?> ctx, String prefix, String localName)
static boolean
producesDeclared(StmtContext<?,?,?> ctx, Class<? extends DeclaredStatement<?>> type)
Deprecated, for removal: This API element is subject to removal in a future version.static QName
qnameFromArgument(StmtContext<?,?,?> ctx, String value)
static void
validateIfFeatureAndWhenOnListKeys(StmtContext<?,?,?> ctx)
Validates the specified statement context with regards to if-feature and when statement on list keys.
-
-
-
Method Detail
-
firstAttributeOf
public static <A,D extends DeclaredStatement<A>> A firstAttributeOf(Iterable<? extends StmtContext<?,?,?>> contexts, Class<D> declaredType)
-
firstAttributeOf
public static <A,D extends DeclaredStatement<A>> A firstAttributeOf(StmtContext<?,?,?> ctx, Class<D> declaredType)
-
firstSubstatementAttributeOf
public static <A,D extends DeclaredStatement<A>> A firstSubstatementAttributeOf(StmtContext<?,?,?> ctx, Class<D> declaredType)
-
findFirstDeclaredSubstatement
public static <A,D extends DeclaredStatement<A>> StmtContext<A,?,?> findFirstDeclaredSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
-
findFirstDeclaredSubstatement
@SafeVarargs public static StmtContext<?,?,?> findFirstDeclaredSubstatement(StmtContext<?,?,?> stmtContext, int startIndex, Class<? extends DeclaredStatement<?>>... types)
-
findAllDeclaredSubstatements
public static <A,D extends DeclaredStatement<A>> Collection<StmtContext<A,D,?>> findAllDeclaredSubstatements(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
-
findAllEffectiveSubstatements
public static <A,D extends DeclaredStatement<A>> Collection<StmtContext<A,D,?>> findAllEffectiveSubstatements(StmtContext<?,?,?> stmtContext, Class<D> type)
-
findAllSubstatements
public static <A,D extends DeclaredStatement<A>> Collection<StmtContext<A,D,?>> findAllSubstatements(StmtContext<?,?,?> stmtContext, Class<D> type)
-
findFirstEffectiveSubstatement
public static <A,D extends DeclaredStatement<A>> StmtContext<A,?,?> findFirstEffectiveSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
-
findFirstSubstatement
public static <A,D extends DeclaredStatement<A>> StmtContext<A,?,?> findFirstSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
Searches for the first substatement of the specified type in the specified statement context. First, it tries to find the substatement in the effective substatements of the statement context. If it was not found, then it proceeds to search in the declared substatements. If it still was not found, the method returns null.- Type Parameters:
A
- statement argument typeD
- declared statement type- Parameters:
stmtContext
- statement context to search indeclaredType
- substatement type to search for- Returns:
- statement context that was searched for or null if was not found
-
findFirstDeclaredSubstatementOnSublevel
public static <D extends DeclaredStatement<?>> StmtContext<?,?,?> findFirstDeclaredSubstatementOnSublevel(StmtContext<?,?,?> stmtContext, Class<D> declaredType, int sublevel)
-
findDeepFirstDeclaredSubstatement
public static <D extends DeclaredStatement<?>> StmtContext<?,?,?> findDeepFirstDeclaredSubstatement(StmtContext<?,?,?> stmtContext, Class<D> declaredType)
-
producesDeclared
@Deprecated(forRemoval=true) public static boolean producesDeclared(StmtContext<?,?,?> ctx, Class<? extends DeclaredStatement<?>> type)
Deprecated, for removal: This API element is subject to removal in a future version.
-
isInExtensionBody
public static boolean isInExtensionBody(StmtContext<?,?,?> stmtCtx)
-
isUnknownStatement
public static boolean isUnknownStatement(StmtContext<?,?,?> stmtCtx)
Returns true if supplied statement context represents unknown statement, otherwise returns false.- Parameters:
stmtCtx
- statement context to be checked- Returns:
- true if supplied statement context represents unknown statement, otherwise false
- Throws:
NullPointerException
- if supplied statement context is null
-
isUnrecognizedStatement
public static boolean isUnrecognizedStatement(StmtContext<?,?,?> stmtCtx)
Returns true if supplied statement context represents unrecognized statement, otherwise returns false.- Parameters:
stmtCtx
- statement context to be checked- Returns:
- true if supplied statement context represents unrecognized statement, otherwise false
- Throws:
NullPointerException
- if supplied statement context is null
-
checkFeatureSupport
public static boolean checkFeatureSupport(StmtContext<?,?,?> stmtContext, Set<QName> supportedFeatures)
-
isPresenceContainer
public static boolean isPresenceContainer(StmtContext<?,?,?> stmtCtx)
Checks whether statement context is a presence container or not.- Parameters:
stmtCtx
- statement context- Returns:
- true if it is a presence container
-
isNonPresenceContainer
public static boolean isNonPresenceContainer(StmtContext<?,?,?> stmtCtx)
Checks whether statement context is a non-presence container or not.- Parameters:
stmtCtx
- statement context- Returns:
- true if it is a non-presence container
-
isMandatoryNode
public static boolean isMandatoryNode(StmtContext<?,?,?> stmtCtx)
Checks whether statement context is a mandatory leaf, choice, anyxml, list or leaf-list according to RFC6020 or not.- Parameters:
stmtCtx
- statement context- Returns:
- true if it is a mandatory leaf, choice, anyxml, list or leaf-list according to RFC6020.
-
isNotMandatoryNodeOfType
public static boolean isNotMandatoryNodeOfType(StmtContext<?,?,?> stmtCtx, StatementDefinition stmtDef)
Checks whether a statement context is a statement of supplied statement definition and whether it is not mandatory leaf, choice, anyxml, list or leaf-list according to RFC6020.- Parameters:
stmtCtx
- statement contextstmtDef
- statement definition- Returns:
- true if supplied statement context is a statement of supplied statement definition and if it is not mandatory leaf, choice, anyxml, list or leaf-list according to RFC6020
-
hasAncestorOfType
public static boolean hasAncestorOfType(StmtContext<?,?,?> ctx, Collection<StatementDefinition> ancestorTypes)
Checks whether at least one ancestor of a StatementContext matches one from a collection of statement definitions.- Parameters:
ctx
- StatementContext to be checkedancestorTypes
- collection of statement definitions- Returns:
- true if at least one ancestor of a StatementContext matches one from collection of statement definitions, otherwise false.
-
hasAncestorOfTypeWithChildOfType
public static <A,D extends DeclaredStatement<A>> boolean hasAncestorOfTypeWithChildOfType(StmtContext<?,?,?> ctx, StatementDefinition ancestorType, StatementDefinition ancestorChildType)
Checks whether all of StmtContext's ancestors of specified type have a child of specified type.- Parameters:
ctx
- StmtContext to be checkedancestorType
- type of ancestor to search forancestorChildType
- type of child to search for in the specified ancestor type- Returns:
- true if all of StmtContext's ancestors of specified type have a child of specified type, otherwise false
-
hasParentOfType
public static boolean hasParentOfType(StmtContext<?,?,?> ctx, StatementDefinition parentType)
Checks whether the parent of StmtContext is of specified type.- Parameters:
ctx
- StmtContext to be checkedparentType
- type of parent to check- Returns:
- true if the parent of StmtContext is of specified type, otherwise false
-
validateIfFeatureAndWhenOnListKeys
public static void validateIfFeatureAndWhenOnListKeys(StmtContext<?,?,?> ctx)
Validates the specified statement context with regards to if-feature and when statement on list keys. The context can either be a leaf which is defined directly in the substatements of a keyed list or a uses statement defined in a keyed list (a uses statement may add leaves into the list).If one of the list keys contains an if-feature or a when statement in YANG 1.1 model, an exception is thrown.
- Parameters:
ctx
- statement context to be validated
-
qnameFromArgument
public static QName qnameFromArgument(StmtContext<?,?,?> ctx, String value)
-
parseIdentifier
public static QName parseIdentifier(StmtContext<?,?,?> ctx, String str)
Parse a YANG identifier string in context of a statement.- Parameters:
ctx
- Statement contextstr
- String to be parsed- Returns:
- An interned QName
- Throws:
NullPointerException
- if any of the arguments are nullSourceException
- if the string is not a valid YANG identifier
-
parseNodeIdentifier
public static QName parseNodeIdentifier(StmtContext<?,?,?> ctx, String prefix, String localName)
-
parseNodeIdentifier
public static QName parseNodeIdentifier(StmtContext<?,?,?> ctx, String str)
Parse a YANG node identifier string in context of a statement.- Parameters:
ctx
- Statement contextstr
- String to be parsed- Returns:
- An interned QName
- Throws:
NullPointerException
- if any of the arguments are nullSourceException
- if the string is not a valid YANG node identifier
-
getRootModuleQName
public static QNameModule getRootModuleQName(StmtContext<?,?,?> ctx)
-
getModuleQNameByPrefix
public static QNameModule getModuleQNameByPrefix(StmtContext<?,?,?> ctx, String prefix)
-
createSourceIdentifier
public static SourceIdentifier createSourceIdentifier(StmtContext<?,?,?> root)
-
getLatestRevision
public static Optional<Revision> getLatestRevision(Iterable<? extends StmtContext<?,?,?>> subStmts)
-
-