*/
package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective;
-import org.opendaylight.yangtools.yang.common.SimpleDateFormatUtil;
-
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.StmtContext;
public class ImportEffectiveStatementImpl extends EffectiveStatementBase<String, ImportStatement> 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<String, ImportStatement, ?> ctx) {
+ public ImportEffectiveStatementImpl(final StmtContext<String, ImportStatement, ?> 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 IllegalStateException("Prefix is mandatory substatement of import statement");
}
}
}
@Override
- public boolean equals(Object obj) {
+ public boolean equals(final Object obj) {
if (this == obj) {
return true;
}
return false;
}
ImportEffectiveStatementImpl other = (ImportEffectiveStatementImpl) obj;
- if (getModuleName() == null) {
- if (other.getModuleName() != null) {
- return false;
- }
- } else if (!getModuleName().equals(other.getModuleName())) {
+ if (!Objects.equals(getModuleName(), other.getModuleName())) {
return false;
}
- if (getRevision() == null) {
- if (other.getRevision() != null) {
- return false;
- }
- } else if (!getRevision().equals(other.getRevision())) {
+ if (!Objects.equals(getRevision(), other.getRevision())) {
return false;
}
- if (getPrefix() == null) {
- if (other.getPrefix() != null) {
- return false;
- }
- } else if (!getPrefix().equals(other.getPrefix())) {
+ if (!Objects.equals(getPrefix(), other.getPrefix())) {
return false;
}
return true;