ImportEffectiveStatementImpl(final StmtContext<String, ImportStatement, ?> ctx) { super(ctx); moduleName = ctx.coerceStatementArgument(); final Optional<String> prefixStmt = findFirstEffectiveSubstatementArgument(PrefixEffectiveStatement.class); MissingSubstatementException.throwIf(!prefixStmt.isPresent(), ctx.getStatementSourceReference(), "Prefix is mandatory substatement of import statement"); this.prefix = prefixStmt.get(); if (!ctx.isEnabledSemanticVersioning()) { final Optional<Revision> optRev = findFirstEffectiveSubstatementArgument( RevisionDateEffectiveStatement.class); this.revision = optRev.isPresent() ? optRev.get() : getImportedRevision(ctx); this.semVer = null; } else { final SemVerSourceIdentifier importedModuleIdentifier = ctx.getFromNamespace( ImportPrefixToSemVerSourceIdentifier.class, prefix); revision = importedModuleIdentifier.getRevision().orElse(null); semVer = importedModuleIdentifier.getSemanticVersion().orElse(null); } description = findFirstEffectiveSubstatementArgument(DescriptionEffectiveStatement.class).orElse(null); reference = findFirstEffectiveSubstatementArgument(ReferenceEffectiveStatement.class).orElse(null); }
final StmtContext<?, ?, ?> root = ctx.getRoot(); throw new MissingSubstatementException(ctx.getStatementSourceReference(), "%s is missing %s. Minimal count is %s. Error in module %s (%s)", currentStatement, e.getKey(), e.getValue().getMin(), root.getStatementArgument(), ctx.getFromNamespace(ModuleCtxToModuleQName.class,