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

io.inugami.commons.engine.js.JsRegex Maven / Gradle / Ivy

There is a newer version: 3.3.5
Show newest version
/* --------------------------------------------------------------------
 *  Inugami
 * --------------------------------------------------------------------
 *
 * This program is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, version 3.
 *
 * This program is distributed in the hope that it will be useful, but
 * WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
 * General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program. If not, see .
 */
package io.inugami.commons.engine.js;

import io.inugami.commons.engine.js.objects.RegexFlags;
import lombok.experimental.UtilityClass;

import javax.script.Bindings;
import java.util.regex.Pattern;

/**
 * JsRegex
 *
 * @author patrick_guillerm
 * @since 29 janv. 2018
 */
@UtilityClass
public final class JsRegex {

    // =========================================================================
    // METHODS
    // =========================================================================
    public static Pattern newRegEx(final String regex, final String options) {
        final RegexFlags flag = RegexFlags.getEnum(options);
        return flag == RegexFlags.DEFAULT ? Pattern.compile(regex) : Pattern.compile(regex, flag.getFlag());
    }

    public static boolean match(final String value, final Object regex) {
        boolean result  = false;
        Pattern pattern = null;
        if (regex instanceof String) {
            pattern = Pattern.compile((String) regex);
        } else if (regex instanceof Bindings) {
            final Object patternRaw = ((Bindings) regex).getOrDefault("_innnerRegEx", null);
            if (patternRaw instanceof Pattern) {
                pattern = (Pattern) patternRaw;
            }

        }

        if (pattern != null) {
            result = pattern.matcher(value).matches();
        }
        return result;
    }

    public static String trim(final String value) {
        return value == null ? null : value.trim();
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy