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); }