Do not fake an errorMessage for pattern constraints
[yangtools.git] / yang / yang-model-util / src / main / java / org / opendaylight / yangtools / yang / model / util / PatternConstraintImpl.java
index 3aafa348fa9a73b8cbd61cf0588b53087d279a2c..780a59f5c19abbc17f04b4d7bf3242ab1ef8a16e 100644 (file)
@@ -8,24 +8,23 @@
 package org.opendaylight.yangtools.yang.model.util;
 
 import com.google.common.base.MoreObjects;
-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.ModifierKind;
 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
 
 /**
- * {@link Immutable} implementation of {@link PatternConstraint}
+ * {@link Immutable} implementation of {@link PatternConstraint}.
  *
+ * <p>
  * Creates an instance of Range constraint based on supplied parameters with
  * additional behaviour:
- *
  * <ul>
  * <li>{@link PatternConstraint#getErrorAppTag()} returns
  * <code>invalid-regular-expression</code>
  * </ul>
- *
  */
 final class PatternConstraintImpl implements PatternConstraint, Immutable {
 
@@ -38,45 +37,54 @@ final class PatternConstraintImpl implements PatternConstraint, Immutable {
     private final ModifierKind modifier;
 
     PatternConstraintImpl(final String regex, final Optional<String> description, final Optional<String> reference) {
-        this(regex, description, reference, null, null, Optional.absent());
+        this(regex, description, reference, null, null, Optional.empty());
     }
 
     PatternConstraintImpl(final String regex, final Optional<String> description, final Optional<String> reference,
             final String errorAppTag, final String errorMessage, final Optional<ModifierKind> modifier) {
         this.regex = Preconditions.checkNotNull(regex, "regex must not be null.");
-        this.description = description.orNull();
-        this.reference = reference.orNull();
+        this.description = description.orElse(null);
+        this.reference = reference.orElse(null);
         this.errorAppTag = errorAppTag != null ? errorAppTag : "invalid-regular-expression";
-        this.errorMessage = errorMessage != null ? errorMessage : String.format(
-                "Supplied value does not match the regular expression %s.", regex);
-        this.modifier = modifier.orNull();
+        this.errorMessage = errorMessage;
+        this.modifier = modifier.orElse(null);
     }
 
     @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
-    public String getRegularExpression() {
+    public String getJavaPatternString() {
         return regex;
     }
 
+    @Override
+    public String getRegularExpressionString() {
+        throw new UnsupportedOperationException();
+    }
+
+    @Override
+    public Optional<ModifierKind> getModifier() {
+        return Optional.ofNullable(modifier);
+    }
+
     @Override
     public int hashCode() {
         return Objects.hash(description, errorAppTag, errorMessage, reference, regex, modifier);
@@ -98,8 +106,8 @@ final class PatternConstraintImpl implements PatternConstraint, Immutable {
 
     @Override
     public String toString() {
-        return MoreObjects.toStringHelper(this).add("regex", regex).add("description", description)
+        return MoreObjects.toStringHelper(this).omitNullValues().add("regex", regex).add("description", description)
                 .add("reference", reference).add("errorAppTag", errorAppTag).add("errorMessage", errorMessage)
                 .add("modifier", modifier).toString();
     }
-}
\ No newline at end of file
+}