Add AbstractEffectiveDocumentedNodeWithoutStatus
[yangtools.git] / yang / yang-parser-rfc7950 / src / main / java / org / opendaylight / yangtools / yang / parser / rfc7950 / stmt / AbstractConstraintEffectiveStatement.java
index 72069a5c5229529d1dffc4c585f7f2326c64dc98..4ec0d07f16989021f2f3f1d57e2d3e666cce2fe7 100644 (file)
@@ -12,19 +12,15 @@ import java.util.Optional;
 import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
 import org.opendaylight.yangtools.yang.model.api.meta.DeclaredStatement;
 import org.opendaylight.yangtools.yang.model.api.meta.EffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.DescriptionEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ErrorAppTagEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ErrorMessageEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.stmt.ModifierEffectiveStatement;
-import org.opendaylight.yangtools.yang.model.api.stmt.ReferenceEffectiveStatement;
 import org.opendaylight.yangtools.yang.model.api.type.ModifierKind;
 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
 
 @Beta
 public abstract class AbstractConstraintEffectiveStatement<A, D extends DeclaredStatement<A>> extends
-        DeclaredEffectiveStatementBase<A, D> implements ConstraintMetaDefinition {
-    private final String description;
-    private final String reference;
+        AbstractEffectiveDocumentedNodeWithoutStatus<A, D> implements ConstraintMetaDefinition {
     private final String errorAppTag;
     private final String errorMessage;
     private final ModifierKind modifier;
@@ -32,19 +28,11 @@ public abstract class AbstractConstraintEffectiveStatement<A, D extends Declared
 
     protected AbstractConstraintEffectiveStatement(final StmtContext<A, D, ?> ctx) {
         super(ctx);
-        String descriptionInit = null;
-        String referenceInit = null;
         String errorAppTagInit = null;
         String errorMessageInit = null;
         ModifierKind modifierInit = null;
 
         for (final EffectiveStatement<?, ?> stmt : effectiveSubstatements()) {
-            if (stmt instanceof DescriptionEffectiveStatement) {
-                descriptionInit = ((DescriptionEffectiveStatement) stmt).argument();
-            }
-            if (stmt instanceof ReferenceEffectiveStatement) {
-                referenceInit = ((ReferenceEffectiveStatement) stmt).argument();
-            }
             if (stmt instanceof ErrorAppTagEffectiveStatement) {
                 errorAppTagInit = ((ErrorAppTagEffectiveStatement) stmt).argument();
             }
@@ -56,8 +44,6 @@ public abstract class AbstractConstraintEffectiveStatement<A, D extends Declared
             }
         }
 
-        this.description = descriptionInit;
-        this.reference = referenceInit;
         this.errorAppTag = errorAppTagInit;
         this.errorMessage = errorMessageInit;
         this.modifier = modifierInit;
@@ -70,24 +56,14 @@ public abstract class AbstractConstraintEffectiveStatement<A, D extends Declared
     }
 
     public final boolean isCustomizedStatement() {
-        return this.description != null || this.reference != null || this.errorAppTag != null
+        return getDescription().isPresent() || getReference().isPresent() || this.errorAppTag != null
                 || this.errorMessage != null || this.modifier != null;
     }
 
-    @Override
-    public final Optional<String> getDescription() {
-        return Optional.ofNullable(description);
-    }
-
     public final ModifierKind getModifier() {
         return modifier;
     }
 
-    @Override
-    public final Optional<String> getReference() {
-        return Optional.ofNullable(reference);
-    }
-
     @Override
     public final Optional<String> getErrorAppTag() {
         return Optional.ofNullable(errorAppTag);