// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.core.util;

public final class WildcardMatch
{
    private WildcardMatch() {
    }
    
    public static boolean test(final String text, final String pattern) {
        return test(text, pattern, false);
    }
    
    public static boolean test(String text, String pattern, final boolean ignoreCase) {
        if (ignoreCase) {
            text = text.toLowerCase();
            pattern = pattern.toLowerCase();
        }
        if (text.equals(pattern)) {
            return true;
        }
        int t = 0;
        int p = 0;
        int starIdx = -1;
        int match = 0;
        while (t < text.length()) {
            if (p < pattern.length() && (pattern.charAt(p) == '?' || pattern.charAt(p) == text.charAt(t))) {
                ++t;
                ++p;
            }
            else if (p < pattern.length() && pattern.charAt(p) == '*') {
                starIdx = p++;
                match = t;
            }
            else {
                if (starIdx == -1) {
                    return false;
                }
                p = starIdx + 1;
                t = ++match;
            }
        }
        while (p < pattern.length() && pattern.charAt(p) == '*') {
            ++p;
        }
        return p == pattern.length();
    }
}
