import static com.google.common.base.Verify.verify;
import static com.google.common.base.Verify.verifyNotNull;
-import static java.util.Objects.requireNonNull;
import static org.opendaylight.yangtools.yang.parser.spi.meta.StmtContextUtils.firstAttributeOf;
import com.google.common.annotations.Beta;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatementDecorators;
import org.opendaylight.yangtools.yang.model.ri.stmt.DeclaredStatements;
import org.opendaylight.yangtools.yang.model.spi.meta.SubstatementIndexingException;
+import org.opendaylight.yangtools.yang.parser.api.ImportResolutionMode;
import org.opendaylight.yangtools.yang.parser.api.YangParserConfiguration;
import org.opendaylight.yangtools.yang.parser.spi.ModuleNamespace;
import org.opendaylight.yangtools.yang.parser.spi.NamespaceToModule;
.addOptional(OpenConfigStatements.OPENCONFIG_VERSION)
.build();
- private final SubstatementValidator validator;
+ private final boolean semanticVersioning;
private ModuleStatementSupport(final YangParserConfiguration config, final SubstatementValidator validator) {
- super(YangStmtMapping.MODULE, StatementPolicy.reject(), config);
- this.validator = requireNonNull(validator);
+ super(YangStmtMapping.MODULE, StatementPolicy.reject(), config, validator);
+ semanticVersioning = config.importResolutionMode() == ImportResolutionMode.OPENCONFIG_SEMVER;
}
public static @NonNull ModuleStatementSupport rfc6020Instance(final YangParserConfiguration config) {
stmt.addToNs(ModuleQNameToModuleName.class, qNameModule, moduleName);
stmt.addToNs(ImportPrefixToModuleCtx.class, modulePrefix, stmt);
- if (stmt.isEnabledSemanticVersioning()) {
+ if (semanticVersioning) {
addToSemVerModuleNamespace(stmt, moduleIdentifier);
}
}
- @Override
- protected SubstatementValidator getSubstatementValidator() {
- return validator;
- }
-
@Override
protected ImmutableList<? extends EffectiveStatement<?, ?>> buildEffectiveSubstatements(
final Current<UnqualifiedQName, ModuleStatement> stmt,