Class StmtContextUtils
java.lang.Object
org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils
-
Method Summary
Modifier and TypeMethodDescriptionstatic boolean
checkFeatureSupport
(StmtContext<?, ?, ?> stmtContext, FeatureSet supportedFeatures) static boolean
evaluateIfFeatures
(@NonNull StmtContext<?, ?, ?> stmt) Evaluateif-feature
substatement of a statement and indicate whether they result in the statement being supported.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<? super 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<? super D> declaredType, int sublevel) static <A,
D extends DeclaredStatement<A>>
StmtContext<A,?, ?> findFirstEffectiveSubstatement
(StmtContext<?, ?, ?> stmtContext, Class<D> declaredType) 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) getLatestRevision
(Iterable<? extends StmtContext<?, ?, ?>> subStmts) static @NonNull QNameModule
getModuleQName
(@NonNull RootStmtContext<?, ?, ?> ctx) static @NonNull QNameModule
getModuleQName
(@NonNull StmtContext<?, ?, ?> ctx) static QNameModule
getModuleQNameByPrefix
(StmtContext<?, ?, ?> ctx, String prefix) static boolean
hasAncestorOfType
(StmtContext<?, ?, ?> stmt, Collection<StatementDefinition> ancestorTypes) Checks whether at least one ancestor of a StatementContext matches one from a collection of statement definitions.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 @NonNull QName
parseIdentifier
(@NonNull StmtContext<?, ?, ?> ctx, String str) Parse a YANG identifier string in context of a statement.static @NonNull QName
parseNodeIdentifier
(@NonNull StmtContext<?, ?, ?> ctx, String str) Parse a YANG node identifier string in context of a statement.static @NonNull QName
parseNodeIdentifier
(@NonNull StmtContext<?, ?, ?> ctx, String prefix, String localName) static @NonNull 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.static void
validateNoKeylessListAncestorOf
(StmtContext.Mutable<?, ?, ?> stmt, String name) Check whether all of StmtContext'slist
ancestors have akey
.
-
Method Details
-
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) -
findFirstDeclaredSubstatementOnSublevel
public static <D extends DeclaredStatement<?>> StmtContext<?,?, findFirstDeclaredSubstatementOnSublevel?> (StmtContext<?, ?, ?> stmtContext, Class<? super D> declaredType, int sublevel) -
findDeepFirstDeclaredSubstatement
public static <D extends DeclaredStatement<?>> StmtContext<?,?, findDeepFirstDeclaredSubstatement?> (StmtContext<?, ?, ?> stmtContext, Class<? super D> declaredType) -
isInExtensionBody
-
isUnknownStatement
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
-
evaluateIfFeatures
Evaluateif-feature
substatement of a statement and indicate whether they result in the statement being supported.- Parameters:
stmt
- Parent statement- Returns:
true
if the statement is indicated to be supported under currently-supported features
-
checkFeatureSupport
public static boolean checkFeatureSupport(StmtContext<?, ?, ?> stmtContext, FeatureSet supportedFeatures) -
isPresenceContainer
Checks whether statement context is a presence container or not.- Parameters:
stmtCtx
- statement context- Returns:
- true if it is a presence container
-
isNonPresenceContainer
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
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<?, ?, ?> stmt, Collection<StatementDefinition> ancestorTypes) Checks whether at least one ancestor of a StatementContext matches one from a collection of statement definitions.- Parameters:
stmt
- Statement context 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.
-
validateNoKeylessListAncestorOf
Check whether all of StmtContext'slist
ancestors have akey
.- Parameters:
stmt
- EffectiveStmtCtx to be checkedname
- Human-friendly statement name- Throws:
SourceException
- if there is any keyless list ancestor
-
hasParentOfType
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
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
-
parseIdentifier
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 @NonNull QName parseNodeIdentifier(@NonNull StmtContext<?, ?, ?> ctx, String prefix, String localName) -
parseNodeIdentifier
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
-
getModuleQName
-
getModuleQName
-
getModuleQNameByPrefix
-
getLatestRevision
-