YANGTOOLS-706: Split up base utility classes into rfc6020.util
[yangtools.git] / yang / yang-parser-impl / src / main / java / org / opendaylight / yangtools / yang / parser / stmt / rfc6020 / effective / type / PatternEffectiveStatementImpl.java
1 /**
2  * Copyright (c) 2015 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.parser.stmt.rfc6020.effective.type;
9
10 import org.opendaylight.yangtools.yang.model.api.stmt.PatternEffectiveStatement;
11 import org.opendaylight.yangtools.yang.model.api.stmt.PatternStatement;
12 import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint;
13 import org.opendaylight.yangtools.yang.parser.spi.meta.StmtContext;
14
15 public class PatternEffectiveStatementImpl
16         extends AbstractConstraintEffectiveStatement<PatternConstraint, PatternStatement>
17         implements PatternEffectiveStatement {
18     public PatternEffectiveStatementImpl(final StmtContext<PatternConstraint, PatternStatement, ?> ctx) {
19         super(ctx);
20     }
21
22     @Override
23     protected PatternConstraint createConstraints(final PatternConstraint argument) {
24         if (!isCustomizedStatement()) {
25             return argument;
26         }
27
28         return new PatternConstraintEffectiveImpl(argument.getJavaPatternString(),
29             argument.getRegularExpressionString(),
30             getDescription().orElse(null), getReference().orElse(null), getErrorAppTag().orElse(null),
31             getErrorMessage().orElse(null), getModifier());
32     }
33 }