*/
package org.opendaylight.yangtools.yang.model.util;
-import com.google.common.base.Optional;
import com.google.common.base.Preconditions;
import java.util.Objects;
+import java.util.Optional;
import org.opendaylight.yangtools.concepts.Immutable;
-import org.opendaylight.yangtools.yang.model.api.type.LengthConstraint;
import org.opendaylight.yangtools.yang.model.api.type.RangeConstraint;
/**
- * {@link Immutable} implementation of {@link LengthConstraint}.
- *
- * Range constraint based on supplied parameters with additional behaviour:
+ * {@link Immutable} implementation of {@link RangeConstraint}.
*
+ * <p>
+ * Range constraint based on supplied parameters with additional behavior:
* <ul>
* <li>{@link RangeConstraint#getErrorAppTag()} returns
* <code>range-out-of-specified-bounds</code>
- * <li>{@link RangeConstraint#getErrorMessage() returns <code>The argument is
+ * <li>{@link RangeConstraint#getErrorMessage()} returns <code>The argument is
* out of bounds <<i>min</i>, <i>max</i> ></code>
* </ul>
*/
RangeConstraintImpl(final Number min, final Number max, final Optional<String> description,
final Optional<String> reference) {
- super();
+ this(min, max, description, reference, "range-out-of-specified-bounds", "The argument is out of bounds <" + min
+ + ", " + max + ">");
+ }
+
+ RangeConstraintImpl(final Number min, final Number max, final Optional<String> description,
+ final Optional<String> reference, final String errorAppTag, final String errorMessage) {
this.min = Preconditions.checkNotNull(min, "min must not be null.");
this.max = Preconditions.checkNotNull(max, "max must not be null.");
- this.description = description.orNull();
- this.reference = reference.orNull();
-
- this.errorAppTag = "range-out-of-specified-bounds";
- this.errorMessage = "The argument is out of bounds <" + min + ", " + max + ">";
+ this.description = description.orElse(null);
+ this.reference = reference.orElse(null);
+ this.errorAppTag = errorAppTag != null ? errorAppTag : "range-out-of-specified-bounds";
+ this.errorMessage = errorMessage != null ? errorMessage : "The argument is out of bounds <" + min + ", " + max
+ + ">";
}
@Override
- public String getDescription() {
- return description;
+ public Optional<String> getDescription() {
+ return Optional.ofNullable(description);
}
@Override
- public String getErrorAppTag() {
- return errorAppTag;
+ public Optional<String> getErrorAppTag() {
+ return Optional.ofNullable(errorAppTag);
}
@Override
- public String getErrorMessage() {
- return errorMessage;
+ public Optional<String> getErrorMessage() {
+ return Optional.ofNullable(errorMessage);
}
@Override
- public String getReference() {
- return reference;
+ public Optional<String> getReference() {
+ return Optional.ofNullable(reference);
}
@Override
if (this == obj) {
return true;
}
- if (obj == null) {
- return false;
- }
- if (getClass() != obj.getClass()) {
+ if (!(obj instanceof RangeConstraintImpl)) {
return false;
}
final RangeConstraintImpl other = (RangeConstraintImpl) obj;
- if (description == null) {
- if (other.description != null) {
- return false;
- }
- } else if (!description.equals(other.description)) {
- return false;
- }
- if (max == null) {
- if (other.max != null) {
- return false;
- }
- } else if (!max.equals(other.max)) {
- return false;
- }
- if (min == null) {
- if (other.min != null) {
- return false;
- }
- } else if (!min.equals(other.min)) {
- return false;
- }
- if (reference == null) {
- if (other.reference != null) {
- return false;
- }
- } else if (!reference.equals(other.reference)) {
- return false;
- }
- return true;
+ return Objects.equals(description, other.description) && Objects.equals(max, other.max)
+ && Objects.equals(min, other.min) && Objects.equals(reference, other.reference);
}
@Override
public String toString() {
- final StringBuilder builder = new StringBuilder();
- builder.append("RangeConstraintImpl [min=");
- builder.append(min);
- builder.append(", max=");
- builder.append(max);
- builder.append(", description=");
- builder.append(description);
- builder.append(", reference=");
- builder.append(reference);
- builder.append(", errorAppTag=");
- builder.append(errorAppTag);
- builder.append(", errorMessage=");
- builder.append(errorMessage);
- builder.append("]");
- return builder.toString();
+ return "RangeConstraintImpl [min=" + min + ", max=" + max + ", description=" + description
+ + ", reference=" + reference + ", errorAppTag=" + errorAppTag + ", errorMessage=" + errorMessage + "]";
}
-}
\ No newline at end of file
+}