Clean up PatternConstraint's String confusion
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / DeviateEffectiveStatementImpl.java
index c56f146c010607b0b0de2c57dc26df0c93fc7488..5fcbddf5cc465211d59471425968661b6ee89de9 100644 (file)
@@ -12,6 +12,7 @@ import com.google.common.collect.ImmutableSet;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.Set;
+import org.opendaylight.yangtools.util.OptionalBoolean;
 import org.opendaylight.yangtools.yang.model.api.DeviateDefinition;
 import org.opendaylight.yangtools.yang.model.api.DeviateKind;
 import org.opendaylight.yangtools.yang.model.api.MustDefinition;
@@ -26,9 +27,7 @@ public final class DeviateEffectiveStatementImpl
         extends DeclaredEffectiveStatementBase<DeviateKind, DeviateStatement> implements DeviateDefinition {
 
     private final DeviateKind deviateType;
-    private final Boolean deviatedConfig;
     private final String deviatedDefault;
-    private final Boolean deviatedMandatory;
     private final Integer deviatedMaxElements;
     private final Integer deviatedMinElements;
     private final Set<MustDefinition> deviatedMustDefinitions;
@@ -36,21 +35,25 @@ public final class DeviateEffectiveStatementImpl
     private final Collection<UniqueConstraint> deviatedUniqueConstraints;
     private final String deviatedUnits;
 
+    private final byte deviatedConfig;
+    private final byte deviatedMandatory;
 
     public DeviateEffectiveStatementImpl(final StmtContext<DeviateKind, DeviateStatement, ?> ctx) {
         super(ctx);
 
         this.deviateType = argument();
 
-        final ConfigEffectiveStatementImpl configStmt = firstEffective(ConfigEffectiveStatementImpl.class);
-        this.deviatedConfig = configStmt == null ? null : configStmt.argument();
+        final ConfigEffectiveStatement configStmt = firstEffective(ConfigEffectiveStatement.class);
+        this.deviatedConfig = OptionalBoolean.ofNullable(configStmt == null ? null : configStmt.argument());
         final DefaultEffectiveStatementImpl defaultStmt = firstEffective(DefaultEffectiveStatementImpl.class);
         this.deviatedDefault = defaultStmt == null ? null : defaultStmt.argument();
         final MandatoryEffectiveStatement mandatoryStmt = firstEffective(MandatoryEffectiveStatement.class);
-        this.deviatedMandatory = mandatoryStmt == null ? null : mandatoryStmt.argument();
-        final MaxElementsEffectiveStatementImpl maxElementsStmt = firstEffective(MaxElementsEffectiveStatementImpl.class);
+        this.deviatedMandatory = OptionalBoolean.ofNullable(mandatoryStmt == null ? null : mandatoryStmt.argument());
+        final MaxElementsEffectiveStatementImpl maxElementsStmt =
+                firstEffective(MaxElementsEffectiveStatementImpl.class);
         this.deviatedMaxElements = maxElementsStmt == null ? null : Integer.valueOf(maxElementsStmt.argument());
-        final MinElementsEffectiveStatementImpl minElementsStmt = firstEffective(MinElementsEffectiveStatementImpl.class);
+        final MinElementsEffectiveStatementImpl minElementsStmt =
+                firstEffective(MinElementsEffectiveStatementImpl.class);
         this.deviatedMinElements = minElementsStmt == null ? null : minElementsStmt.argument();
         final TypeEffectiveStatement<TypeStatement> typeStmt = firstEffective(TypeEffectiveStatement.class);
         this.deviatedType = typeStmt == null ? null : typeStmt.getTypeDefinition();
@@ -68,7 +71,7 @@ public final class DeviateEffectiveStatementImpl
 
     @Override
     public Boolean getDeviatedConfig() {
-        return deviatedConfig;
+        return OptionalBoolean.toNullable(deviatedConfig);
     }
 
     @Override
@@ -78,7 +81,7 @@ public final class DeviateEffectiveStatementImpl
 
     @Override
     public Boolean getDeviatedMandatory() {
-        return deviatedMandatory;
+        return OptionalBoolean.toNullable(deviatedMandatory);
     }
 
     @Override
@@ -112,7 +115,7 @@ public final class DeviateEffectiveStatementImpl
     }
 
     @Override
-    public boolean equals(Object obj) {
+    public boolean equals(final Object obj) {
         if (this == obj) {
             return true;
         }
@@ -123,16 +126,16 @@ public final class DeviateEffectiveStatementImpl
             return false;
         }
         DeviateEffectiveStatementImpl other = (DeviateEffectiveStatementImpl) obj;
-        return Objects.equals(deviateType, other.deviateType) &&
-                Objects.equals(deviatedConfig, other.deviatedConfig) &&
-                Objects.equals(deviatedDefault, other.deviatedDefault) &&
-                Objects.equals(deviatedMandatory, other.deviatedMandatory) &&
-                Objects.equals(deviatedMaxElements, other.deviatedMaxElements) &&
-                Objects.equals(deviatedMinElements, other.deviatedMinElements) &&
-                Objects.equals(deviatedMustDefinitions, other.deviatedMustDefinitions) &&
-                Objects.equals(deviatedType, other.deviatedType) &&
-                Objects.equals(deviatedUniqueConstraints, other.deviatedUniqueConstraints) &&
-                Objects.equals(deviatedUnits, other.deviatedUnits);
+        return Objects.equals(deviateType, other.deviateType)
+                && deviatedConfig == other.deviatedConfig
+                && Objects.equals(deviatedDefault, other.deviatedDefault)
+                && deviatedMandatory == other.deviatedMandatory
+                && Objects.equals(deviatedMaxElements, other.deviatedMaxElements)
+                && Objects.equals(deviatedMinElements, other.deviatedMinElements)
+                && Objects.equals(deviatedMustDefinitions, other.deviatedMustDefinitions)
+                && Objects.equals(deviatedType, other.deviatedType)
+                && Objects.equals(deviatedUniqueConstraints, other.deviatedUniqueConstraints)
+                && Objects.equals(deviatedUnits, other.deviatedUnits);
     }
 
     @Override
@@ -140,4 +143,4 @@ public final class DeviateEffectiveStatementImpl
         return Objects.hash(deviateType, deviatedConfig, deviatedDefault, deviatedMandatory, deviatedMaxElements,
                 deviatedMinElements, deviatedMustDefinitions, deviatedType, deviatedUniqueConstraints, deviatedUnits);
     }
-}
\ No newline at end of file
+}