X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;f=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fcodec%2FCompiledPatternContext.java;fp=yang%2Fyang-data-impl%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fyangtools%2Fyang%2Fdata%2Fimpl%2Fcodec%2FCompiledPatternContext.java;h=6e9012229510ddedbb6e41295b844d8ce2b7319b;hb=e03fa006031ad1d639ac9fc47a7c77dd047ce0ef;hp=0000000000000000000000000000000000000000;hpb=da0092ebeb0d025bc06f214bcc9b7dc2161aacce;p=yangtools.git diff --git a/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java new file mode 100644 index 0000000000..6e90122295 --- /dev/null +++ b/yang/yang-data-impl/src/main/java/org/opendaylight/yangtools/yang/data/impl/codec/CompiledPatternContext.java @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2015 Cisco Systems, Inc. and others. All rights reserved. + * + * This program and the accompanying materials are made available under the + * terms of the Eclipse Public License v1.0 which accompanies this distribution, + * and is available at http://www.eclipse.org/legal/epl-v10.html + */ +package org.opendaylight.yangtools.yang.data.impl.codec; + +import com.google.common.base.Preconditions; +import com.google.common.base.Strings; +import java.util.regex.Pattern; +import org.opendaylight.yangtools.yang.model.api.type.PatternConstraint; + +class CompiledPatternContext { + + private final Pattern pattern; + private final String errorMessage; + + CompiledPatternContext(final PatternConstraint yangConstraint) { + pattern = Pattern.compile("^" + yangConstraint.getRegularExpression() + "$"); + final String yangMessage = yangConstraint.getErrorMessage(); + if (Strings.isNullOrEmpty(yangMessage)) { + errorMessage = "Value %s does not match regular expression <" + pattern.pattern() + ">"; + } else { + errorMessage = yangMessage; + } + } + + public void validate(final String s) { + Preconditions.checkArgument(pattern.matcher(s).matches(), errorMessage, s); + } + +} \ No newline at end of file