Interface StmtContext<A,D extends DeclaredStatement<A>,E extends EffectiveStatement<A,D>>
-
- Type Parameters:
A
- Argument typeD
- Declared Statement representationE
- Effective Statement representation
- All Superinterfaces:
BoundStmtCtx<A>
,BoundStmtCtxCompat<A,D>
,CommonStmtCtx
,NamespaceStmtCtx
,StmtContextCompat
- All Known Subinterfaces:
RootStmtContext<A,D,E>
,RootStmtContext.Mutable<A,D,E>
,StmtContext.Mutable<A,D,E>
- All Known Implementing Classes:
RootStatementContext
public interface StmtContext<A,D extends DeclaredStatement<A>,E extends EffectiveStatement<A,D>> extends NamespaceStmtCtx, BoundStmtCtxCompat<A,D>
An inference context associated with an instance of a statement.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interface
StmtContext.Mutable<A,D extends DeclaredStatement<A>,E extends EffectiveStatement<A,D>>
An mutable view of an inference context associated with an instance of a statement.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default Iterable<? extends @NonNull StmtContext<?,?,?>>
allSubstatements()
default Stream<? extends @NonNull StmtContext<?,?,?>>
allSubstatementsStream()
@NonNull E
buildEffective()
Return theEffectiveStatement
for statement context, creating it if required.default @NonNull StmtContext<?,?,?>
coerceParentContext()
Return the parent statement context, forcing a VerifyException if this is the root statement.@NonNull Optional<? extends StmtContext.Mutable<?,?,?>>
copyAsChildOf(StmtContext.Mutable<?,?,?> parent, CopyType type, @Nullable QNameModule targetModule)
@NonNull Collection<? extends @NonNull StmtContext<?,?,?>>
declaredSubstatements()
Return declared substatements.@NonNull Collection<? extends @NonNull StmtContext<?,?,?>>
effectiveSubstatements()
Return effective substatements.ModelProcessingPhase
getCompletedPhase()
Collection<? extends StmtContext<?,?,?>>
getEffectOfStatement()
Optional<StmtContext<A,D,E>>
getOriginalCtx()
Return the statement context of the original definition, if this statement is an instantiated copy.@Nullable StmtContext<?,?,?>
getParentContext()
Return the parent statement context, or null if this is the root statement.Optional<StmtContext<A,D,E>>
getPreviousCopyCtx()
Return the context of the previous copy of this statement -- effectively walking towards the source origin of this statement.@NonNull RootStmtContext<?,?,?>
getRoot()
Returns the model root for this statement.boolean
isSupportedByFeatures()
boolean
isSupportedToBuildEffective()
@NonNull StmtContext.Mutable<A,D,E>
replicaAsChildOf(StmtContext.Mutable<?,?,?> parent)
Create a replica of this statement as a substatement of specifiedparent
.-
Methods inherited from interface org.opendaylight.yangtools.yang.parser.spi.meta.BoundStmtCtx
argument, findSubstatementArgument, getArgument, hasSubstatement, yangVersion
-
Methods inherited from interface org.opendaylight.yangtools.yang.parser.spi.meta.BoundStmtCtxCompat
declared
-
Methods inherited from interface org.opendaylight.yangtools.yang.parser.spi.meta.CommonStmtCtx
getRawArgument, producesDeclared, producesEffective, publicDefinition, rawArgument, sourceReference
-
Methods inherited from interface org.opendaylight.yangtools.yang.parser.spi.meta.NamespaceStmtCtx
getAllFromNamespace, getFromNamespace, localNamespacePortion, namespace, namespaceItem
-
Methods inherited from interface org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextCompat
history
-
-
-
-
Method Detail
-
getParentContext
@Nullable StmtContext<?,?,?> getParentContext()
Return the parent statement context, or null if this is the root statement.- Returns:
- context of parent of statement, or null if this is the root statement.
-
coerceParentContext
default @NonNull StmtContext<?,?,?> coerceParentContext()
Return the parent statement context, forcing a VerifyException if this is the root statement.- Returns:
- context of parent of statement
- Throws:
VerifyException
- if this statement is the root statement
-
getRoot
@NonNull RootStmtContext<?,?,?> getRoot()
Returns the model root for this statement.- Returns:
- root context of statement
-
declaredSubstatements
@NonNull Collection<? extends @NonNull StmtContext<?,?,?>> declaredSubstatements()
Return declared substatements. These are the statements which are explicitly written in the source model, but reflect implicit containment statements as well. To but that statement into practical terms, this snippet:choice foo { container bar; }
choice foo { case bar { container bar; } }
DeclaredStatement.declaredSubstatements()
.- Returns:
- Collection of declared substatements
-
effectiveSubstatements
@NonNull Collection<? extends @NonNull StmtContext<?,?,?>> effectiveSubstatements()
Return effective substatements. These are the statements which are added as this statement's substatements complete their effective model phase.- Returns:
- Collection of declared substatements
-
allSubstatements
default Iterable<? extends @NonNull StmtContext<?,?,?>> allSubstatements()
-
allSubstatementsStream
default Stream<? extends @NonNull StmtContext<?,?,?>> allSubstatementsStream()
-
buildEffective
@NonNull E buildEffective()
Return theEffectiveStatement
for statement context, creating it if required. Implementations of this method are required to memoize the returned object, so that subsequent invocation return the same object.If
isSupportedToBuildEffective()
returnsfalse
, this method's behaviour is undefined.- Returns:
- Effective statement instance.
-
isSupportedToBuildEffective
boolean isSupportedToBuildEffective()
-
isSupportedByFeatures
boolean isSupportedByFeatures()
-
getEffectOfStatement
Collection<? extends StmtContext<?,?,?>> getEffectOfStatement()
-
getOriginalCtx
Optional<StmtContext<A,D,E>> getOriginalCtx()
Return the statement context of the original definition, if this statement is an instantiated copy.- Returns:
- Original definition, if this statement was copied.
-
getPreviousCopyCtx
Optional<StmtContext<A,D,E>> getPreviousCopyCtx()
Return the context of the previous copy of this statement -- effectively walking towards the source origin of this statement.- Returns:
- Context of the previous copy of this statement, if this statement has been copied.
-
replicaAsChildOf
@NonNull StmtContext.Mutable<A,D,E> replicaAsChildOf(StmtContext.Mutable<?,?,?> parent)
Create a replica of this statement as a substatement of specifiedparent
. The replica must not be modified and acts as a source ofEffectiveStatement
from outside ofparent
's subtree.- Parameters:
parent
- Parent of the replica statement- Returns:
- replica of this statement
- Throws:
IllegalArgumentException
- if this statement cannot be replicated into parent, for example because it comes from an alien implementation.
-
copyAsChildOf
@Beta @NonNull Optional<? extends StmtContext.Mutable<?,?,?>> copyAsChildOf(StmtContext.Mutable<?,?,?> parent, CopyType type, @Nullable QNameModule targetModule)
-
getCompletedPhase
ModelProcessingPhase getCompletedPhase()
-
-