private static SearchPattern createSearchPattern(IType type) throws JavaModelException { SearchPattern pattern= SearchPattern.createPattern(type, IJavaSearchConstants.ALL_OCCURRENCES, SearchUtils.GENERICS_AGNOSTIC_MATCH_RULE); IMethod[] constructors= JavaElementUtil.getAllConstructors(type); if (constructors.length == 0) { return pattern; } SearchPattern constructorDeclarationPattern= RefactoringSearchEngine.createOrPattern(constructors, IJavaSearchConstants.DECLARATIONS); return SearchPattern.createOrPattern(pattern, constructorDeclarationPattern); }
private static int validateMatchRule(String stringPattern, int searchFor, int limitTo, int matchRule) { if (searchFor == IJavaSearchConstants.MODULE && limitTo == IJavaSearchConstants.DECLARATIONS && matchRule == SearchPattern.R_REGEXP_MATCH) return matchRule; return validateMatchRule(stringPattern, matchRule); }
return camelCaseMatch(pattern, patternStart, patternEnd, name, nameStart, nameEnd, false/*not the same count of parts*/);
SearchPattern createOccurrenceSearchPattern(IProgressMonitor pm) { pm.beginTask("", 1); //$NON-NLS-1$ SearchPattern pattern= SearchPattern.createPattern(getMethod(), IJavaSearchConstants.ALL_OCCURRENCES, SearchUtils.GENERICS_AGNOSTIC_MATCH_RULE); pm.done(); return pattern; }
if (stringPattern == null || stringPattern.length() == 0) return null; if ((matchRule = validateMatchRule(stringPattern, matchRule)) == -1) { return null; return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_SUFFIX); case IJavaSearchConstants.CLASS_AND_INTERFACE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_AND_INTERFACE_SUFFIX); case IJavaSearchConstants.CLASS_AND_ENUM: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_AND_ENUM_SUFFIX); case IJavaSearchConstants.INTERFACE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.INTERFACE_SUFFIX); case IJavaSearchConstants.INTERFACE_AND_ANNOTATION: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.INTERFACE_AND_ANNOTATION_SUFFIX); case IJavaSearchConstants.ENUM: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.ENUM_SUFFIX); case IJavaSearchConstants.ANNOTATION_TYPE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.ANNOTATION_TYPE_SUFFIX); case IJavaSearchConstants.TYPE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.TYPE_SUFFIX); case IJavaSearchConstants.METHOD: return createMethodOrConstructorPattern(stringPattern, limitTo, matchRule, false/*not a constructor*/); case IJavaSearchConstants.CONSTRUCTOR: return createMethodOrConstructorPattern(stringPattern, limitTo, matchRule, true/*constructor*/); case IJavaSearchConstants.FIELD: return createFieldPattern(stringPattern, limitTo, matchRule); case IJavaSearchConstants.PACKAGE: return createPackagePattern(stringPattern, limitTo, matchRule);
try { index.startQuery(); SearchPattern pattern = currentPattern(); EntryResult[] entries = pattern.queryIn(index); if (entries == null) return; SearchPattern decodedResult = pattern.getBlankPattern(); String containerPath = index.containerPath; char separator = index.separator; decodedResult.decodeIndexKey(entry.getWord()); if (pattern.matchesDecodedKey(decodedResult)) { acceptMatch(names[j], containerPath, separator, decodedResult, requestor, participant, scope, monitor);
if ((matchRule = validateMatchRule(null, matchRule)) == -1) { return null; declaringSimpleName = declaringClass.getElementName().toCharArray(); declaringQualification = declaringClass.getPackageFragment().getElementName().toCharArray(); char[][] enclosingNames = enclosingTypeNames(declaringClass); if (enclosingNames.length > 0) { declaringQualification = CharOperation.concat(declaringQualification, CharOperation.concatWith(enclosingNames, '.'), '.'); IImportDeclaration importDecl = (IImportDeclaration)element; if (importDecl.isOnDemand()) { searchPattern = createPackagePattern(elementName.substring(0, lastDot), maskedLimitTo, matchRule); } else { searchPattern = createTypePattern( elementName.substring(lastDot+1).toCharArray(), elementName.substring(0, lastDot).toCharArray(), declaringSimpleName = declaringClass.getElementName().toCharArray(); declaringQualification = declaringClass.getPackageFragment().getElementName().toCharArray(); char[][] enclosingNames = enclosingTypeNames(declaringClass); if (enclosingNames.length > 0) { declaringQualification = CharOperation.concat(declaringQualification, CharOperation.concatWith(enclosingNames, '.'), '.'); case IJavaElement.TYPE : IType type = (IType)element; searchPattern = createTypePattern( type.getElementName().toCharArray(), type.getPackageFragment().getElementName().toCharArray(),
/** * Sets the disjunction of search patterns to be used during search. * <p> * This method must be called before {@link RefactoringSearchEngine2#searchPattern(IProgressMonitor)} * * @param first the first search pattern to set * @param second the second search pattern to set */ public final void setOrPattern(final SearchPattern first, final SearchPattern second) { Assert.isNotNull(first); Assert.isNotNull(second); fPattern= SearchPattern.createOrPattern(first, second); }
/** * @noreference This method is not intended to be referenced by clients. * @nooverride This method is not intended to be re-implemented or extended by clients. */ public void acceptMatch(String relativePath, String containerPath, char separator, SearchPattern pattern, IndexQueryRequestor requestor, SearchParticipant participant, IJavaSearchScope scope) { acceptMatch(relativePath, containerPath, separator, pattern, requestor, participant, scope, null); } /**
private SearchPattern createNewMethodPattern() { StringBuilder stringPattern= new StringBuilder(getNewElementName()).append('('); int paramCount= getMethod().getNumberOfParameters(); for (int i= 0; i < paramCount; i++) { if (i > 0) stringPattern.append(','); stringPattern.append('*'); } stringPattern.append(')'); return SearchPattern.createPattern(stringPattern.toString(), IJavaSearchConstants.METHOD, IJavaSearchConstants.DECLARATIONS, SearchUtils.GENERICS_AGNOSTIC_MATCH_RULE); }
if (stringPattern == null || stringPattern.length() == 0) return null; if ((matchRule = validateMatchRule(stringPattern, matchRule)) == -1) { return null; return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_SUFFIX); case IJavaSearchConstants.CLASS_AND_INTERFACE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_AND_INTERFACE_SUFFIX); case IJavaSearchConstants.CLASS_AND_ENUM: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_AND_ENUM_SUFFIX); case IJavaSearchConstants.INTERFACE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.INTERFACE_SUFFIX); case IJavaSearchConstants.INTERFACE_AND_ANNOTATION: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.INTERFACE_AND_ANNOTATION_SUFFIX); case IJavaSearchConstants.ENUM: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.ENUM_SUFFIX); case IJavaSearchConstants.ANNOTATION_TYPE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.ANNOTATION_TYPE_SUFFIX); case IJavaSearchConstants.TYPE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.TYPE_SUFFIX); case IJavaSearchConstants.METHOD: return createMethodOrConstructorPattern(stringPattern, limitTo, matchRule, false/*not a constructor*/); case IJavaSearchConstants.CONSTRUCTOR: return createMethodOrConstructorPattern(stringPattern, limitTo, matchRule, true/*constructor*/); case IJavaSearchConstants.FIELD: return createFieldPattern(stringPattern, limitTo, matchRule); case IJavaSearchConstants.PACKAGE: return createPackagePattern(stringPattern, limitTo, matchRule);
try { index.startQuery(); SearchPattern pattern = currentPattern(); EntryResult[] entries = pattern.queryIn(index); if (entries == null) return; SearchPattern decodedResult = pattern.getBlankPattern(); String containerPath = index.containerPath; char separator = index.separator; decodedResult.decodeIndexKey(entry.getWord()); if (pattern.matchesDecodedKey(decodedResult)) { acceptMatch(names[j], containerPath, separator, decodedResult, requestor, participant, scope, monitor);
if ((matchRule = validateMatchRule(null, matchRule)) == -1) { return null; declaringSimpleName = declaringClass.getElementName().toCharArray(); declaringQualification = declaringClass.getPackageFragment().getElementName().toCharArray(); char[][] enclosingNames = enclosingTypeNames(declaringClass); if (enclosingNames.length > 0) { declaringQualification = CharOperation.concat(declaringQualification, CharOperation.concatWith(enclosingNames, '.'), '.'); IImportDeclaration importDecl = (IImportDeclaration)element; if (importDecl.isOnDemand()) { searchPattern = createPackagePattern(elementName.substring(0, lastDot), maskedLimitTo, matchRule); } else { searchPattern = createTypePattern( elementName.substring(lastDot+1).toCharArray(), elementName.substring(0, lastDot).toCharArray(), declaringSimpleName = declaringClass.getElementName().toCharArray(); declaringQualification = declaringClass.getPackageFragment().getElementName().toCharArray(); char[][] enclosingNames = enclosingTypeNames(declaringClass); if (enclosingNames.length > 0) { declaringQualification = CharOperation.concat(declaringQualification, CharOperation.concatWith(enclosingNames, '.'), '.'); case IJavaElement.TYPE : IType type = (IType)element; searchPattern = createTypePattern( type.getElementName().toCharArray(), type.getPackageFragment().getElementName().toCharArray(),
/** * Sets the disjunction of search patterns to be used during search. * <p> * This method must be called before {@link RefactoringSearchEngine2#searchPattern(IProgressMonitor)} * * @param first the first search pattern to set * @param second the second search pattern to set */ public final void setOrPattern(final SearchPattern first, final SearchPattern second) { Assert.isNotNull(first); Assert.isNotNull(second); fPattern= SearchPattern.createOrPattern(first, second); }
/** * @noreference This method is not intended to be referenced by clients. * @nooverride This method is not intended to be re-implemented or extended by clients. */ public void acceptMatch(String relativePath, String containerPath, char separator, SearchPattern pattern, IndexQueryRequestor requestor, SearchParticipant participant, IJavaSearchScope scope) { acceptMatch(relativePath, containerPath, separator, pattern, requestor, participant, scope, null); } /**
private static SearchPattern createSearchPattern(IType type) throws JavaModelException { SearchPattern pattern= SearchPattern.createPattern(type, IJavaSearchConstants.ALL_OCCURRENCES, SearchUtils.GENERICS_AGNOSTIC_MATCH_RULE); IMethod[] constructors= JavaElementUtil.getAllConstructors(type); if (constructors.length == 0) return pattern; SearchPattern constructorDeclarationPattern= RefactoringSearchEngine.createOrPattern(constructors, IJavaSearchConstants.DECLARATIONS); return SearchPattern.createOrPattern(pattern, constructorDeclarationPattern); }
private SearchPattern createNewMethodPattern() { StringBuffer stringPattern= new StringBuffer(getNewElementName()).append('('); int paramCount= getMethod().getNumberOfParameters(); for (int i= 0; i < paramCount; i++) { if (i > 0) { stringPattern.append(','); } stringPattern.append('*'); } stringPattern.append(')'); return SearchPattern.createPattern(stringPattern.toString(), IJavaSearchConstants.METHOD, IJavaSearchConstants.DECLARATIONS, SearchUtils.GENERICS_AGNOSTIC_MATCH_RULE); }
if (stringPattern == null || stringPattern.length() == 0) return null; if ((matchRule = validateMatchRule(stringPattern, matchRule)) == -1) { return null; return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_SUFFIX); case IJavaSearchConstants.CLASS_AND_INTERFACE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_AND_INTERFACE_SUFFIX); case IJavaSearchConstants.CLASS_AND_ENUM: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.CLASS_AND_ENUM_SUFFIX); case IJavaSearchConstants.INTERFACE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.INTERFACE_SUFFIX); case IJavaSearchConstants.INTERFACE_AND_ANNOTATION: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.INTERFACE_AND_ANNOTATION_SUFFIX); case IJavaSearchConstants.ENUM: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.ENUM_SUFFIX); case IJavaSearchConstants.ANNOTATION_TYPE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.ANNOTATION_TYPE_SUFFIX); case IJavaSearchConstants.TYPE: return createTypePattern(stringPattern, limitTo, matchRule, IIndexConstants.TYPE_SUFFIX); case IJavaSearchConstants.METHOD: return createMethodOrConstructorPattern(stringPattern, limitTo, matchRule, false/*not a constructor*/); case IJavaSearchConstants.CONSTRUCTOR: return createMethodOrConstructorPattern(stringPattern, limitTo, matchRule, true/*constructor*/); case IJavaSearchConstants.FIELD: return createFieldPattern(stringPattern, limitTo, matchRule); case IJavaSearchConstants.PACKAGE: return createPackagePattern(stringPattern, limitTo, matchRule);
try { index.startQuery(); SearchPattern pattern = currentPattern(); EntryResult[] entries = pattern.queryIn(index); if (entries == null) return; SearchPattern decodedResult = pattern.getBlankPattern(); String containerPath = index.containerPath; char separator = index.separator; decodedResult.decodeIndexKey(entry.getWord()); if (pattern.matchesDecodedKey(decodedResult)) { acceptMatch(names[j], containerPath, separator, decodedResult, requestor, participant, scope, monitor);
/** * Returns whether the given pattern is a camel case pattern or not. * <em>Note: this method does not consider the * {@link SearchPattern#R_CAMELCASE_SAME_PART_COUNT_MATCH} variant.<em> * * @param pattern the pattern to inspect * @return whether it is a camel case pattern or not */ public static boolean isCamelCasePattern(String pattern) { return SearchPattern.validateMatchRule(pattern, SearchPattern.R_CAMELCASE_MATCH) == SearchPattern.R_CAMELCASE_MATCH; } }