+
+ @Override
+ public ContainerEffectiveStatement copyEffective(final Current<QName, ContainerStatement> stmt,
+ final ContainerEffectiveStatement original) {
+ return new ContainerEffectiveStatementImpl((ContainerEffectiveStatementImpl) original,
+ (ContainerSchemaNode) stmt.original(), createFlags(stmt, original.effectiveSubstatements()),
+ stmt.wrapSchemaPath());
+ }
+
+ private static int createFlags(final Current<?, ?> stmt,
+ final Collection<? extends EffectiveStatement<?, ?>> substatements) {
+ return new FlagsBuilder()
+ .setHistory(stmt.history())
+ .setStatus(findFirstArgument(substatements, StatusEffectiveStatement.class, Status.CURRENT))
+ .setConfiguration(stmt.effectiveConfig().asNullable())
+ .setPresence(findFirstStatement(substatements, PresenceEffectiveStatement.class) != null)
+ .toFlags();
+ }