final void copyTo(final StatementContextBase<?, ?, ?> target, final CopyType typeOfCopy, @Nullable final QNameModule targetModule) { final Collection<Mutable<?, ?, ?>> buffer = new ArrayList<>(substatements.size() + effective.size()); for (final Mutable<?, ?, ?> stmtContext : substatements.values()) { if (stmtContext.isSupportedByFeatures()) { copySubstatement(stmtContext, target, typeOfCopy, targetModule, buffer); } } for (final Mutable<?, ?, ?> stmtContext : effective) { copySubstatement(stmtContext, target, typeOfCopy, targetModule, buffer); } target.addEffectiveSubstatements(buffer); }
/** * Copy statements from a grouping to a target node. * * @param sourceGrpStmtCtx * source grouping statement context * @param targetCtx * target context * @param usesNode * uses node * @throws SourceException * instance of SourceException */ static void copyFromSourceToTarget(final Mutable<?, ?, ?> sourceGrpStmtCtx, final StatementContextBase<?, ?, ?> targetCtx, final Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode) { final Collection<? extends Mutable<?, ?, ?>> declared = sourceGrpStmtCtx.mutableDeclaredSubstatements(); final Collection<? extends Mutable<?, ?, ?>> effective = sourceGrpStmtCtx.mutableEffectiveSubstatements(); final Collection<Mutable<?, ?, ?>> buffer = new ArrayList<>(declared.size() + effective.size()); final QNameModule newQNameModule = getNewQNameModule(targetCtx, sourceGrpStmtCtx); for (final Mutable<?, ?, ?> original : declared) { if (original.isSupportedByFeatures()) { copyStatement(original, targetCtx, newQNameModule, buffer); } } for (final Mutable<?, ?, ?> original : effective) { copyStatement(original, targetCtx, newQNameModule, buffer); } targetCtx.addEffectiveSubstatements(buffer); usesNode.addAsEffectOfStatement(buffer); }
static void copyFromSourceToTarget(final StatementContextBase<?, ?, ?> sourceCtx, final StatementContextBase<?, ?, ?> targetCtx) { final CopyType typeOfCopy = UsesStatement.class.equals(sourceCtx.coerceParentContext().getPublicDefinition() .getDeclaredRepresentationClass()) ? CopyType.ADDED_BY_USES_AUGMENTATION : CopyType.ADDED_BY_AUGMENTATION; /* * Since Yang 1.1, if an augmentation is made conditional with a * "when" statement, it is allowed to add mandatory nodes. */ final boolean skipCheckOfMandatoryNodes = YangVersion.VERSION_1_1.equals(sourceCtx.getRootVersion()) && isConditionalAugmentStmt(sourceCtx); final Collection<? extends Mutable<?, ?, ?>> declared = sourceCtx.mutableDeclaredSubstatements(); final Collection<? extends Mutable<?, ?, ?>> effective = sourceCtx.mutableEffectiveSubstatements(); final Collection<Mutable<?, ?, ?>> buffer = new ArrayList<>(declared.size() + effective.size()); for (final Mutable<?, ?, ?> originalStmtCtx : declared) { if (originalStmtCtx.isSupportedByFeatures()) { copyStatement(originalStmtCtx, targetCtx, typeOfCopy, buffer, skipCheckOfMandatoryNodes); } } for (final Mutable<?, ?, ?> originalStmtCtx : effective) { copyStatement(originalStmtCtx, targetCtx, typeOfCopy, buffer, skipCheckOfMandatoryNodes); } targetCtx.addEffectiveSubstatements(buffer); }
@Override public final void onFullDefinitionDeclared(final Mutable<SchemaNodeIdentifier, AugmentStatement, EffectiveStatement<SchemaNodeIdentifier, AugmentStatement>> augmentNode) { if (!augmentNode.isSupportedByFeatures()) { return;
@Override public void onFullDefinitionDeclared( final Mutable<QName, UsesStatement, EffectiveStatement<QName, UsesStatement>> usesNode) { if (!usesNode.isSupportedByFeatures()) { return;