All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nakedobjects.metamodel.facets.propparam.validate.regex.RegExFacetAnnotation Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.facets.propparam.validate.regex;

import java.util.regex.Pattern;

import org.nakedobjects.metamodel.facets.FacetHolder;


public class RegExFacetAnnotation extends RegExFacetAbstract {

    private final Pattern pattern;

    public RegExFacetAnnotation(
            final String validation,
            final String format,
            final boolean caseSensitive,
            final FacetHolder holder) {
        super(validation, format, caseSensitive, holder);
        pattern = Pattern.compile(validation(), patternFlags());
    }

    public String format(final String text) {
        if (text == null) {
            return "";
        }
        if (format() == null || format().length() == 0) {
            return text;
        }
        return pattern.matcher(text).replaceAll(format());
    }

    public boolean doesNotMatch(final String text) {
        if (text == null) {
            return true;
        }
        return !pattern.matcher(text).matches();
    }

    private int patternFlags() {
        return !caseSensitive() ? Pattern.CASE_INSENSITIVE : 0;
    }

}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy