X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-parser-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fparser%2Fstmt%2Frfc6020%2Feffective%2FImportEffectiveStatementImpl.java;h=d9f6fb6b2ca9141ca630b97267520513b5532712;hb=04fa25a4fe8957f6492618aa9a1e9a4f9af39df4;hp=4462819ef6e6a65d9b441f4a910e3d1af78e3201;hpb=65375a4a5fba446fa4da04605d3a066626cf3645;p=yangtools.git diff --git a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java index 4462819ef6..d9f6fb6b2c 100644 --- a/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java +++ b/yang/yang-parser-impl/src/main/java/org/opendaylight/yangtools/yang/parser/stmt/rfc6020/effective/ImportEffectiveStatementImpl.java @@ -11,30 +11,31 @@ import java.util.Date; import java.util.Objects; import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil; import org.opendaylight.yangtools.yang.model.api.ModuleImport; -import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement; import org.opendaylight.yangtools.yang.model.api.stmt.ImportStatement; +import org.opendaylight.yangtools.yang.parser.spi.meta.MissingSubstatementException; import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext; -public class ImportEffectiveStatementImpl extends EffectiveStatementBase implements +public class ImportEffectiveStatementImpl extends DeclaredEffectiveStatementBase implements ModuleImport { private final String moduleName; - private Date revision; - private String prefix; + private final Date revision; + private final String prefix; public ImportEffectiveStatementImpl(final StmtContext ctx) { super(ctx); moduleName = ctx.getStatementArgument(); - revision = SimpleDateFormatUtil.DEFAULT_DATE_IMP; - for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { - if (effectiveStatement instanceof RevisionDateEffectiveStatementImpl) { - revision = ((RevisionDateEffectiveStatementImpl) effectiveStatement).argument(); - } - if (effectiveStatement instanceof PrefixEffectiveStatementImpl) { - prefix = ((PrefixEffectiveStatementImpl) effectiveStatement).argument(); - } + RevisionDateEffectiveStatementImpl revisionDateStmt = firstEffective(RevisionDateEffectiveStatementImpl.class); + this.revision = (revisionDateStmt == null) ? SimpleDateFormatUtil.DEFAULT_DATE_IMP : revisionDateStmt.argument(); + + PrefixEffectiveStatementImpl prefixStmt = firstEffective(PrefixEffectiveStatementImpl.class); + if (prefixStmt != null) { + this.prefix = prefixStmt.argument(); + } else { + throw new MissingSubstatementException("Prefix is mandatory substatement of import statement", + ctx.getStatementSourceReference()); } }