Bug 5410 - XSD regular expressions are interpreted as Java regexes (1/2)
[yangtools.git] / yang / yang-model-api / src / main / java / org / opendaylight / yangtools / yang / model / api / type / PatternConstraint.java
index aab99fd794585fb3912954c4a8da06ac2351b5d4..a20c4d383494d66c919b311ad416640bdaf84da8 100644 (file)
@@ -7,20 +7,43 @@
  */
 package org.opendaylight.yangtools.yang.model.api.type;
 
+import javax.annotation.Nullable;
 import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
 
 /**
  * Contains the method for getting the data from the YANG <code>pattern</code>
  * which is substatement of <code>type</code> statement.
- * 
  */
 public interface PatternConstraint extends ConstraintMetaDefinition {
 
     /**
-     * Returns a regular expression (pattern).
-     * 
-     * @return string with regular expression which is equal to the argument of
+     * Returns a java regular expression (pattern).
+     *
+     * @return string with java regular expression which is equal to the argument of
      *         the YANG <code>pattern</code> substatement
      */
-    public String getRegularExpression();
+    String getRegularExpression();
+
+    /**
+     * Returns a raw regular expression as it was declared in a source.
+     *
+     * @return argument of pattern statement as it was declared in a source.
+     */
+    // FIXME: version 2.0.0: make this method non-default
+    default String getRawRegularExpression() {
+        return getRegularExpression();
+    }
+
+    /**
+     * All implementations should override this method.
+     * The default definition of this method is used only in YANG 1.0 (RFC6020)
+     * implementations of PatternConstraint which do not support modifier statement.
+     * YANG pattern statement has been changed in YANG 1.1 (RFC7950) and now allows modifier statement.
+     *
+     * @return enum constant which represents the value of modifier statement
+     */
+     // FIXME: version 2.0.0: make this method non-default
+    @Nullable default ModifierKind getModifier() {
+        return null;
+    }
 }