- protected AbstractEffectiveModule(
- final @NonNull StmtContext<String, D, ? extends EffectiveStatement<String, ?>> ctx,
- final @NonNull String prefix) {
- super(ctx);
+ protected AbstractEffectiveModule(final D declared,
+ final StmtContext<UnqualifiedQName, D, ? extends EffectiveStatement<UnqualifiedQName, ?>> ctx,
+ final ImmutableList<? extends EffectiveStatement<?, ?>> substatements, final String prefix) {
+ super(declared, ctx, substatements);
+
+ // This check is rather weird, but comes from our desire to lower memory footprint while providing both
+ // EffectiveStatements and SchemaNode interfaces -- which do not overlap completely where child lookups are
+ // concerned. This ensures that we have SchemaTree index available for use with child lookups.
+ final Map<QName, SchemaTreeEffectiveStatement<?>> schemaTree =
+ createSchemaTreeNamespace(ctx.getStatementSourceReference(), effectiveSubstatements());
+ schemaTreeNamespace = ImmutableMap.copyOf(schemaTree);
+
+ // Data tree check, not currently used
+ createDataTreeNamespace(ctx.getStatementSourceReference(), schemaTree.values(), schemaTreeNamespace);