MatchingOutcome (String name, CamelHumpMatcher matcher) { FList<TextRange> fragments = matcher.matchingFragments(name); if (fragments == null) return MatchingOutcome.NON_MATCH; if (!MinusculeMatcher.isStartMatch(fragments)) return MatchingOutcome.WORSE_MATCH; return matcher.matchingDegree(name, fragments) >= myMinMatchingDegree ? MatchingOutcome.BETTER_MATCH : MatchingOutcome.WORSE_MATCH; }