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
1 /*
2  * Copyright (c) 2013 Cisco Systems, Inc. and others.  All rights reserved.
3  *
4  * This program and the accompanying materials are made available under the
5  * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6  * and is available at http://www.eclipse.org/legal/epl-v10.html
7  */
8 package org.opendaylight.yangtools.yang.model.api.type;
9
10 import javax.annotation.Nullable;
11 import org.opendaylight.yangtools.yang.model.api.ConstraintMetaDefinition;
12
13 /**
14  * Contains the method for getting the data from the YANG <code>pattern</code>
15  * which is substatement of <code>type</code> statement.
16  */
17 public interface PatternConstraint extends ConstraintMetaDefinition {
18
19     /**
20      * Returns a java regular expression (pattern).
21      *
22      * @return string with java regular expression which is equal to the argument of
23      *         the YANG <code>pattern</code> substatement
24      */
25     String getRegularExpression();
26
27     /**
28      * Returns a raw regular expression as it was declared in a source.
29      *
30      * @return argument of pattern statement as it was declared in a source.
31      */
32     // FIXME: version 2.0.0: make this method non-default
33     default String getRawRegularExpression() {
34         return getRegularExpression();
35     }
36
37     /**
38      * All implementations should override this method.
39      * The default definition of this method is used only in YANG 1.0 (RFC6020)
40      * implementations of PatternConstraint which do not support modifier statement.
41      * YANG pattern statement has been changed in YANG 1.1 (RFC7950) and now allows modifier statement.
42      *
43      * @return enum constant which represents the value of modifier statement
44      */
45      // FIXME: version 2.0.0: make this method non-default
46     @Nullable default ModifierKind getModifier() {
47         return null;
48     }
49 }