runtime/src/main/java/org/echocat/jomon/runtime/util/Glob.java
public boolean matches(String string) {
        String src = string;
        final boolean result;
        if (_compiledPattern.length == 1) {

            // Shortcut for pattern '*', '?' and patterns not containing any wildcard
            final GlobPattern pattern = _compiledPattern[0];
            if (pattern.getType() == GLOB_MULTIPLE) {
                result = true;
            } else if (pattern.getType() == GLOB_SINGLE) {
                result = src.length() == 1;
            } else {
                if (_caseInSensitive) {
                    result = src.equalsIgnoreCase(pattern.getText());
                } else {
                    result = src.equals(pattern.getText());
                }
            }
            
        } else if (_compiledPattern.length == 2) {

            // Shortcuts for common patterns '*something' and 'something*'
            final GlobPattern pattern1 = _compiledPattern[0];
            final GlobPattern pattern2 = _compiledPattern[1];
            if (_caseInSensitive) {
                src = src.toLowerCase();
            }
            if (pattern1.getType() == TEXT) {
                 result = src.startsWith(pattern1.getText()) && (pattern2.getType() == GLOB_MULTIPLE || src.length() == pattern1.getTextLength()+1);
            } else {
                result = src.endsWith(pattern2.getText()) && (pattern1.getType() == GLOB_MULTIPLE || src.length() == pattern2.getTextLength()+1);
            }

        } else {
            result = matches(src.toCharArray());
        }
        return result;
    }
public boolean matches(String string) {
        String src = string;
        final boolean result;
        if (_compiledPattern.length == 1) {

            // Shortcut for pattern '*', '?' and patterns not containing any wildcard
            final GlobPattern pattern = _compiledPattern[0];
            if (pattern.getType() == GLOB_MULTIPLE) {
                result = true;
            } else if (pattern.getType() == GLOB_SINGLE) {
                result = src.length() == 1;
            } else {
                if (_caseInSensitive) {
                    result = src.equalsIgnoreCase(pattern.getText());
                } else {
                    result = src.equals(pattern.getText());
                }
            }
            
        } else if (_compiledPattern.length == 2) {

            // Shortcuts for common patterns '*something' and 'something*'
            final GlobPattern pattern1 = _compiledPattern[0];
            final GlobPattern pattern2 = _compiledPattern[1];
            if (_caseInSensitive) {
                src = src.toLowerCase();
            }
            if (pattern1.getType() == TEXT) {
                 result = src.startsWith(pattern1.getText()) && (pattern2.getType() == GLOB_MULTIPLE || src.length() == pattern1.getTextLength()+1);
            } else {
                result = src.endsWith(pattern2.getText()) && (pattern1.getType() == GLOB_MULTIPLE || src.length() == pattern2.getTextLength()+1);
            }

        } else {
            result = matches(src.toCharArray());
        }
        return result;
    }
public boolean matches ( String string ) { String src = string ; final boolean result ; if ( _compiledPattern . length == 1 ) { // Shortcut for pattern '*', '?' and patterns not containing any wildcard final GlobPattern pattern = _compiledPattern [ 0 ] ; if ( pattern . getType ( ) == GLOB_MULTIPLE ) { result = true ; } else if ( pattern . getType ( ) == GLOB_SINGLE ) { result = src . length ( ) == 1 ; } else { if ( _caseInSensitive ) { result = src . equalsIgnoreCase ( pattern . getText ( ) ) ; } else { result = src . equals ( pattern . getText ( ) ) ; } } } else if ( _compiledPattern . length == 2 ) { // Shortcuts for common patterns '*something' and 'something*' final GlobPattern pattern1 = _compiledPattern [ 0 ] ; final GlobPattern pattern2 = _compiledPattern [ 1 ] ; if ( _caseInSensitive ) { src = src . toLowerCase ( ) ; } if ( pattern1 . getType ( ) == TEXT ) { result = src . startsWith ( pattern1 . getText ( ) ) && ( pattern2 . getType ( ) == GLOB_MULTIPLE || src . length ( ) == pattern1 . getTextLength ( ) + 1 ) ; } else { result = src . endsWith ( pattern2 . getText ( ) ) && ( pattern1 . getType ( ) == GLOB_MULTIPLE || src . length ( ) == pattern2 . getTextLength ( ) + 1 ) ; } } else { result = matches ( src . toCharArray ( ) ) ; } return result ; }
Match the given string.
Match the given string .