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=c652590993b1e4660d5d557868665dbfa634ed27;hp=d322c22a7d82d76efa02a4f29e9faa8469bbd12a;hpb=30c55f9bed4209a1507d7da876748a8b49f5c966;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 d322c22a7d..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 @@ -8,31 +8,34 @@ package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective; 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 String moduleName; - private Date revision; - private String prefix; + private final String moduleName; + private final Date revision; + private final String prefix; - public ImportEffectiveStatementImpl(StmtContext ctx) { + public ImportEffectiveStatementImpl(final StmtContext ctx) { super(ctx); moduleName = ctx.getStatementArgument(); - for (final EffectiveStatement effectiveStatement : effectiveSubstatements()) { - if (effectiveStatement instanceof RevisionEffectiveStatementImpl) { - revision = ((RevisionEffectiveStatementImpl) 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()); } } @@ -55,14 +58,14 @@ public class ImportEffectiveStatementImpl extends EffectiveStatementBase