Clean up PatternConstraint's String confusion
[yangtools.git] / yang / yang-data-impl / src / main / java / org / opendaylight / yangtools / yang / data / impl / codec / CompiledPatternContext.java
index a42b2a46f28c34f1cc34f6804ff05f9a40d23830..cf1a35c1c6a5a50ef978b5b8fe9678d9ab272860 100644 (file)
@@ -14,10 +14,12 @@ class CompiledPatternContext {
 
     private final Pattern pattern;
     private final String errorMessage;
+    private final String regEx;
 
     CompiledPatternContext(final PatternConstraint yangConstraint) {
-        pattern = Pattern.compile("^" + yangConstraint.getRegularExpression() + "$");
+        pattern = Pattern.compile(yangConstraint.getJavaPatternString());
         errorMessage = yangConstraint.getErrorMessage().orElse(null);
+        regEx = errorMessage == null ? yangConstraint.getRegularExpressionString() : null;
     }
 
     void validate(final String str) {
@@ -26,8 +28,7 @@ class CompiledPatternContext {
                 throw new IllegalArgumentException(errorMessage);
             }
 
-            throw new IllegalArgumentException("Value " + str + "does not match regular expression '"
-                    + pattern.pattern() + "'");
+            throw new IllegalArgumentException("Value " + str + "does not match regular expression '" + regEx + "'");
         }
     }
 }