* @param <E> Effective Statement representation
*/
public interface StmtContext<A, D extends DeclaredStatement<A>, E extends EffectiveStatement<A, D>>
- extends BoundStmtCtx<A> {
+ extends BoundStmtCtx<A>, StmtContextCompat {
@Deprecated(forRemoval = true)
default @NonNull StatementDefinition getPublicDefinition() {
return publicDefinition();
return source();
}
- // TODO: gradually migrate callers of this method
+ @Deprecated(forRemoval = true)
default @NonNull StatementSourceReference getStatementSourceReference() {
return sourceReference();
}
* Return the statement argument in literal format.
*
* @return raw statement argument string, or null if this statement does not have an argument.
+ * @deprecated Use {@link #rawArgument()} instead.
*/
- // TODO: gradually migrate callers of this method
+ @Deprecated(forRemoval = true)
default @Nullable String rawStatementArgument() {
return rawArgument();
}
*
* @return raw statement argument string
* @throws VerifyException if this statement does not have an argument
+ * @deprecated Use {@link #getRawArgument()} instead.
*/
- // TODO: gradually migrate callers of this method
+ @Deprecated(forRemoval = true)
default @NonNull String coerceRawStatementArgument() {
return getRawArgument();
}
* Return the statement argument.
*
* @return statement argument, or null if this statement does not have an argument
+ * @deprecated Use {@link #argument()} instead.
*/
- // TODO: gradually migrate callers of this method
+ @Deprecated(forRemoval = true)
default @Nullable A getStatementArgument() {
return argument();
}
*
* @return raw statement argument string
* @throws VerifyException if this statement does not have an argument
+ * @deprecated Use {@link #getArgument()} instead.
*/
- // TODO: gradually migrate callers of this method
+ @Deprecated(forRemoval = true)
default @NonNull A coerceStatementArgument() {
return getArgument();
}
<K, V, N extends IdentifierNamespace<K, V>> Map<K, V> getAllFromCurrentStmtCtxNamespace(Class<N> type);
+ /**
+ * Returns the model root for this statement.
+ *
+ * @return root context of statement
+ */
@NonNull RootStmtContext<?, ?, ?> getRoot();
/**
/*
* FIXME: YANGTOOLS-784: the next three methods are closely related to the copy process:
- * - getCopyHistory() is a brief summary of what went on
+ * - copyHistory() is a brief summary of what went on
* - getOriginalContext() points to the CopyHistory.ORIGINAL
* - getPreviousCopyCtx() points to the immediate predecessor forming a singly-linked list terminated
* at getOriginalContext()
* and hence should become arguments to that method.
*/
- /**
- * Return the executive summary of the copy process that has produced this context.
- *
- * @return A simplified summary of the copy process.
- */
- CopyHistory getCopyHistory();
-
/**
* Return the statement context of the original definition, if this statement is an instantiated copy.
*
ModelProcessingPhase getCompletedPhase();
- /**
- * Return version of root statement context.
- *
- * @return version of root statement context
- */
- @NonNull YangVersion getRootVersion();
-
/**
* An mutable view of an inference context associated with an instance of a statement.
*
return childCopyOf(stmt, type, null);
}
+ /**
+ * Create a replica of this statement as a substatement of specified {@code parent}. The replica must not be
+ * modified and acts as a source of {@link EffectiveStatement} from outside of {@code parent}'s subtree.
+ *
+ * @param parent Parent of the replica statement
+ * @return replica of this statement
+ * @throws IllegalArgumentException if this statement cannot be replicated into parent, for example because it
+ * comes from an alien implementation.
+ */
+ @NonNull Mutable<A, D, E> replicaAsChildOf(Mutable<?, ?, ?> parent);
+
@Beta
@NonNull Optional<? extends Mutable<?, ?, ?>> copyAsChildOf(Mutable<?, ?, ?> parent, CopyType type,
@Nullable QNameModule targetModule);