List of usage examples for org.eclipse.jdt.internal.core.search StringOperation getCamelCaseMatchingRegions
public static final int[] getCamelCaseMatchingRegions(String pattern, int patternStart, int patternEnd, String name, int nameStart, int nameEnd, boolean samePartCount)
From source file:x10dt.ui.typeHierarchy.SearchUtils.java
License:Open Source License
public static final int[] getMatchingRegions(String pattern, String name, int matchRule) { if (name == null) return null; final int nameLength = name.length(); if (pattern == null) { return new int[] { 0, nameLength }; }/*from w w w .j av a 2s . c om*/ final int patternLength = pattern.length(); boolean countMatch = false; switch (matchRule) { case SearchPattern.RULE_EXACT_MATCH: if (patternLength == nameLength && pattern.equalsIgnoreCase(name)) { return new int[] { 0, patternLength }; } break; case SearchPattern.RULE_EXACT_MATCH | SearchPattern.RULE_CASE_SENSITIVE: if (patternLength == nameLength && pattern.equals(name)) { return new int[] { 0, patternLength }; } break; case SearchPattern.RULE_PREFIX_MATCH: if (patternLength <= nameLength && name.substring(0, patternLength).equalsIgnoreCase(pattern)) { return new int[] { 0, patternLength }; } break; case SearchPattern.RULE_PREFIX_MATCH | SearchPattern.RULE_CASE_SENSITIVE: if (name.startsWith(pattern)) { return new int[] { 0, patternLength }; } break; // case SearchPattern.RULE_CAMELCASE_SAME_PART_COUNT_MATCH: // countMatch = true; //$FALL-THROUGH$ case SearchPattern.RULE_CAMELCASE_MATCH: if (patternLength <= nameLength) { int[] regions = StringOperation.getCamelCaseMatchingRegions(pattern, 0, patternLength, name, 0, nameLength, countMatch); if (regions != null) return regions; if (name.substring(0, patternLength).equalsIgnoreCase(pattern)) { return new int[] { 0, patternLength }; } } break; // case SearchPattern.RULE_CAMELCASE_SAME_PART_COUNT_MATCH | SearchPattern.RULE_CASE_SENSITIVE: // countMatch = true; //$FALL-THROUGH$ case SearchPattern.RULE_CAMELCASE_MATCH | SearchPattern.RULE_CASE_SENSITIVE: if (patternLength <= nameLength) { return StringOperation.getCamelCaseMatchingRegions(pattern, 0, patternLength, name, 0, nameLength, countMatch); } break; case SearchPattern.RULE_PATTERN_MATCH: return StringOperation.getPatternMatchingRegions(pattern, 0, patternLength, name, 0, nameLength, false); case SearchPattern.RULE_PATTERN_MATCH | SearchPattern.RULE_CASE_SENSITIVE: return StringOperation.getPatternMatchingRegions(pattern, 0, patternLength, name, 0, nameLength, true); } return null; }