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 Modifier and Type Method Description static boolean
checkFeatureSupport(StmtContext<?,?,?> stmtContext, Set<QName> supportedFeatures)
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)
static Optional<Revision>
getLatestRevision(Iterable<? extends StmtContext<?,?,?>> subStmts)
static QNameModule
getModuleQNameByPrefix(StmtContext<?,?,?> ctx, String prefix)
static QNameModule
getRootModuleQName(StmtContext<?,?,?> ctx)
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(StmtContext<?,?,?> ctx, String str)
Parse a YANG identifier string in context of a statement.static @NonNull QName
parseNodeIdentifier(StmtContext<?,?,?> ctx, String str)
Parse a YANG node identifier string in context of a statement.static @NonNull QName
parseNodeIdentifier(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 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)
-
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
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
-
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<?,?,?> 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
public static void validateNoKeylessListAncestorOf(StmtContext.Mutable<?,?,?> stmt, String name)
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
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 @NonNull QName qnameFromArgument(StmtContext<?,?,?> ctx, String value)
-
parseIdentifier
public static @NonNull 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 @NonNull QName parseNodeIdentifier(StmtContext<?,?,?> ctx, String prefix, String localName)
-
parseNodeIdentifier
public static @NonNull 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)
-
getLatestRevision
public static Optional<Revision> getLatestRevision(Iterable<? extends StmtContext<?,?,?>> subStmts)
-
-