fun match()

in src/main/kotlin/mobi/hsz/idea/gitignore/services/IgnoreMatcher.kt [23:43]


    fun match(pattern: Pattern?, path: String?): Boolean {
        if (pattern == null || path == null) {
            return false
        } else {
            synchronized(cache) {
                val hashCode = Objects.hash(pattern, path)
                if (!cache.containsKey(hashCode)) {
                    val parts = MatcherUtil.getParts(pattern)
                    var result = false
                    if (parts.isEmpty() || MatcherUtil.matchAllParts(parts, path)) {
                        try {
                            result = pattern.matcher(path).find()
                        } catch (ignored: StringIndexOutOfBoundsException) {
                        }
                    }
                    cache.put(hashCode, result)
                }
                return cache[hashCode]
            }
        }
    }