*/
package org.opendaylight.yangtools.yang.parser.stmt.rfc6020.effective;
+import java.util.Objects;
import org.opendaylight.yangtools.yang.model.api.MustDefinition;
import org.opendaylight.yangtools.yang.model.api.RevisionAwareXPath;
-import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
import org.opendaylight.yangtools.yang.model.api.stmt.MustStatement;
import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
-public class MustEffectiveStatementImpl extends
- EffectiveStatementBase<RevisionAwareXPath, MustStatement> implements
+public class MustEffectiveStatementImpl extends EffectiveStatementBase<RevisionAwareXPath, MustStatement> implements
MustDefinition {
- private RevisionAwareXPath xPath;
- private String description;
- private String errorAppTag;
- private String errorMessage;
- private String reference;
+ private final RevisionAwareXPath xPath;
+ private final String description;
+ private final String errorAppTag;
+ private final String errorMessage;
+ private final String reference;
- public MustEffectiveStatementImpl(
- StmtContext<RevisionAwareXPath, MustStatement, ?> ctx) {
+ public MustEffectiveStatementImpl(final StmtContext<RevisionAwareXPath, MustStatement, ?> ctx) {
super(ctx);
+ this.xPath = ctx.getStatementArgument();
- initFields();
+ DescriptionEffectiveStatementImpl descriptionStmt = firstEffective(DescriptionEffectiveStatementImpl.class);
+ this.description = (descriptionStmt == null) ? null : descriptionStmt.argument();
- xPath = ctx.getStatementArgument();
- }
+ ErrorAppTagEffectiveStatementImpl errorAppTagStmt = firstEffective(ErrorAppTagEffectiveStatementImpl.class);
+ this.errorAppTag = (errorAppTagStmt == null) ? null : errorAppTagStmt.argument();
- private void initFields() {
-
- for (final EffectiveStatement<?, ?> effectiveStatement : effectiveSubstatements()) {
-
- if (effectiveStatement instanceof DescriptionEffectiveStatementImpl) {
- description = ((DescriptionEffectiveStatementImpl) effectiveStatement)
- .argument();
- }
- if (effectiveStatement instanceof ErrorAppTagEffectiveStatementImpl) {
- errorAppTag = ((ErrorAppTagEffectiveStatementImpl) effectiveStatement)
- .argument();
- }
- if (effectiveStatement instanceof ErrorMessageEffectiveStatementImpl) {
- errorMessage = ((ErrorMessageEffectiveStatementImpl) effectiveStatement)
- .argument();
- }
- if (effectiveStatement instanceof ReferenceEffectiveStatementImpl) {
- reference = ((ReferenceEffectiveStatementImpl) effectiveStatement)
- .argument();
- }
- }
+ ErrorMessageEffectiveStatementImpl errorMessageStmt = firstEffective(ErrorMessageEffectiveStatementImpl.class);
+ this.errorMessage = (errorMessageStmt == null) ? null : errorMessageStmt.argument();
+
+ ReferenceEffectiveStatementImpl referenceStmt = firstEffective(ReferenceEffectiveStatementImpl.class);
+ this.reference = (referenceStmt == null) ? null : referenceStmt.argument();
}
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
- result = prime * result + ((xPath == null) ? 0 : xPath.hashCode());
- result = prime * result
- + ((description == null) ? 0 : description.hashCode());
- result = prime * result
- + ((reference == null) ? 0 : reference.hashCode());
+ result = prime * result + Objects.hashCode(xPath);
+ result = prime * result + Objects.hashCode(description);
+ result = prime * result + Objects.hashCode(reference);
return result;
}
return false;
}
final MustEffectiveStatementImpl other = (MustEffectiveStatementImpl) obj;
- if (xPath == null) {
- if (other.xPath != null) {
- return false;
- }
- } else if (!xPath.equals(other.xPath)) {
+ if (!Objects.equals(xPath, other.xPath)) {
return false;
}
- if (description == null) {
- if (other.description != null) {
- return false;
- }
- } else if (!description.equals(other.description)) {
+ if (!Objects.equals(description, other.description)) {
return false;
}
- if (reference == null) {
- if (other.reference != null) {
- return false;
- }
- } else if (!reference.equals(other.reference)) {
+ if (!Objects.equals(reference, other.reference)) {
return false;
}
return true;