List of usage examples for org.eclipse.jdt.core.search SearchMatch isInsideDocComment
public final boolean isInsideDocComment()
From source file:com.android.ide.eclipse.adt.internal.editors.layout.gle2.CustomViewFinder.java
License:Open Source License
private Pair<List<String>, List<String>> findViews(final boolean layoutsOnly) { final Set<String> customViews = new HashSet<String>(); final Set<String> thirdPartyViews = new HashSet<String>(); ProjectState state = Sdk.getProjectState(mProject); final List<IProject> libraries = state != null ? state.getFullLibraryProjects() : Collections.<IProject>emptyList(); SearchRequestor requestor = new SearchRequestor() { @Override//from ww w . j ava2 s.c o m public void acceptSearchMatch(SearchMatch match) throws CoreException { // Ignore matches in comments if (match.isInsideDocComment()) { return; } Object element = match.getElement(); if (element instanceof ResolvedBinaryType) { // Third party view ResolvedBinaryType type = (ResolvedBinaryType) element; IPackageFragment fragment = type.getPackageFragment(); IPath path = fragment.getPath(); String last = path.lastSegment(); // Filter out android.jar stuff if (last.equals(FN_FRAMEWORK_LIBRARY)) { return; } if (!isValidView(type, layoutsOnly)) { return; } IProject matchProject = match.getResource().getProject(); if (mProject == matchProject || libraries.contains(matchProject)) { String fqn = type.getFullyQualifiedName(); thirdPartyViews.add(fqn); } } else if (element instanceof ResolvedSourceType) { // User custom view IProject matchProject = match.getResource().getProject(); if (mProject == matchProject || libraries.contains(matchProject)) { ResolvedSourceType type = (ResolvedSourceType) element; if (!isValidView(type, layoutsOnly)) { return; } String fqn = type.getFullyQualifiedName(); fqn = fqn.replace('$', '.'); customViews.add(fqn); } } } }; try { IJavaProject javaProject = BaseProjectHelper.getJavaProject(mProject); if (javaProject != null) { String className = layoutsOnly ? CLASS_VIEWGROUP : CLASS_VIEW; IType viewType = javaProject.findType(className); if (viewType != null) { IJavaSearchScope scope = SearchEngine.createHierarchyScope(viewType); SearchParticipant[] participants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }; int matchRule = SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE; SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.CLASS, IJavaSearchConstants.IMPLEMENTORS, matchRule); SearchEngine engine = new SearchEngine(); engine.search(pattern, participants, scope, requestor, new NullProgressMonitor()); } } } catch (CoreException e) { AdtPlugin.log(e, null); } List<String> custom = new ArrayList<String>(customViews); List<String> thirdParty = new ArrayList<String>(thirdPartyViews); if (!layoutsOnly) { // Update our cached answers (unless we were filtered on only layouts) mCustomViews = custom; mThirdPartyViews = thirdParty; } return Pair.of(custom, thirdParty); }
From source file:com.android.ide.eclipse.auidt.internal.editors.layout.gle2.CustomViewFinder.java
License:Open Source License
private Pair<List<String>, List<String>> findViews(final boolean layoutsOnly) { final Set<String> customViews = new HashSet<String>(); final Set<String> thirdPartyViews = new HashSet<String>(); ProjectState state = Sdk.getProjectState(mProject); final List<IProject> libraries = state != null ? state.getFullLibraryProjects() : Collections.<IProject>emptyList(); SearchRequestor requestor = new SearchRequestor() { @Override/* www .j a v a 2 s . c o m*/ public void acceptSearchMatch(SearchMatch match) throws CoreException { // Ignore matches in comments if (match.isInsideDocComment()) { return; } Object element = match.getElement(); if (element instanceof ResolvedBinaryType) { // Third party view ResolvedBinaryType type = (ResolvedBinaryType) element; IPackageFragment fragment = type.getPackageFragment(); IPath path = fragment.getPath(); String last = path.lastSegment(); // Filter out android.jar stuff /* if (last.equals(FN_FRAMEWORK_LIBRARY)) { return; }*/ if (last.equals(FN_FRAMEWORK_LIBRARY)) { return; } if (!isValidView(type, layoutsOnly)) { return; } IProject matchProject = match.getResource().getProject(); if (mProject == matchProject || libraries.contains(matchProject)) { String fqn = type.getFullyQualifiedName(); thirdPartyViews.add(fqn); } } else if (element instanceof ResolvedSourceType) { // User custom view IProject matchProject = match.getResource().getProject(); if (mProject == matchProject || libraries.contains(matchProject)) { ResolvedSourceType type = (ResolvedSourceType) element; if (!isValidView(type, layoutsOnly)) { return; } String fqn = type.getFullyQualifiedName(); fqn = fqn.replace('$', '.'); customViews.add(fqn); } } } }; try { IJavaProject javaProject = BaseProjectHelper.getJavaProject(mProject); if (javaProject != null) { String className = layoutsOnly ? CLASS_VIEWGROUP : CLASS_VIEW; IType viewType = javaProject.findType(className); if (viewType != null) { IJavaSearchScope scope = SearchEngine.createHierarchyScope(viewType); SearchParticipant[] participants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }; int matchRule = SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE; SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.CLASS, IJavaSearchConstants.IMPLEMENTORS, matchRule); SearchEngine engine = new SearchEngine(); engine.search(pattern, participants, scope, requestor, new NullProgressMonitor()); } } } catch (CoreException e) { AdtPlugin.log(e, null); } List<String> custom = new ArrayList<String>(customViews); List<String> thirdParty = new ArrayList<String>(thirdPartyViews); if (!layoutsOnly) { // Update our cached answers (unless we were filtered on only layouts) mCustomViews = custom; mThirdPartyViews = thirdParty; } return Pair.of(custom, thirdParty); }
From source file:de.loskutov.dh.search.FieldReferencesRequestor.java
License:Open Source License
@Override public void acceptSearchMatch(SearchMatch match) { if (match.isInsideDocComment()) { return;//from w w w. j av a2s .c o m } if (match.getElement() != null && match.getElement() instanceof IField) { IField field = (IField) match.getElement(); /* * Check if the reported field is REALLY from the parent element. * This can be NOT the case for fields from member classes of inner types... * See bug 237200... */ IParent parent = (IParent) field.getParent(); boolean fixedBug237200 = false; try { IJavaElement[] children = parent.getChildren(); for (IJavaElement child : children) { if (child instanceof IField && field.equals(child)) { fixedBug237200 = true; } } } catch (JavaModelException e) { DataHierarchyPlugin.logError("getChildren() failed on: " + parent, e); } if (!fixedBug237200) { return; } if (searchOnlyStatics) { int flags = 0; try { flags = field.getFlags(); } catch (JavaModelException e) { DataHierarchyPlugin.logError("acceptSearchMatch() failed on: " + field, e); } if ((flags & Flags.AccStatic) == 0 /* || member.isEnumConstant() */) { return; } } if (!isTypeAccepted(field)) { return; } addMatch(match); } }
From source file:de.loskutov.dh.search.JavaReferencesRequestor.java
License:Open Source License
@Override public void acceptSearchMatch(SearchMatch match) throws CoreException { if (match.isInsideDocComment()) { return;/*from w w w . j a v a 2 s. c o m*/ } if (match.getElement() != null && match.getElement() instanceof IJavaElement) { IJavaElement member = (IJavaElement) match.getElement(); if (!searchElements.contains(member)) { addMatch(match); searchElements.add(member); } } }
From source file:edu.brown.cs.bubbles.bedrock.BedrockUtil.java
License:Open Source License
/********************************************************************************/ static void outputSearchMatch(SearchMatch mat, IvyXmlWriter xw) { xw.begin("MATCH"); xw.field("OFFSET", mat.getOffset()); xw.field("LENGTH", mat.getLength()); xw.field("STARTOFFSET", mat.getOffset()); xw.field("ENDOFFSET", mat.getOffset() + mat.getLength()); IResource irc = mat.getResource();/* w w w . j a v a 2 s .co m*/ if (irc != null) { File f = mat.getResource().getLocation().toFile(); switch (irc.getType()) { case IResource.FILE: xw.field("FILE", f.toString()); break; case IResource.PROJECT: xw.field("PROJECT", f.toString()); break; case IResource.FOLDER: xw.field("FOLDER", f.toString()); break; case IResource.ROOT: xw.field("ROOT", f.toString()); break; } } xw.field("ACCURACY", mat.getAccuracy()); xw.field("EQUIV", mat.isEquivalent()); xw.field("ERASURE", mat.isErasure()); xw.field("EXACT", mat.isExact()); xw.field("IMPLICIT", mat.isImplicit()); xw.field("INDOCCMMT", mat.isInsideDocComment()); xw.field("RAW", mat.isRaw()); Object o = mat.getElement(); BedrockPlugin.logD("MATCH ELEMENT " + o); if (o instanceof IJavaElement) { IJavaElement nelt = (IJavaElement) o; outputJavaElement(nelt, false, xw); } xw.end("MATCH"); }
From source file:edu.illinois.compositerefactorings.refactorings.usesupertypeininstanceof.UseSuperTypeInInstanceOfRefactoring.java
License:Open Source License
@Override public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException, OperationCanceledException { RefactoringStatus result = new RefactoringStatus(); fChangeManager = new TextChangeManager(); for (Iterator<CompilationUnitRewrite> iter = fRewrites.values().iterator(); iter.hasNext();) { iter.next().clearASTAndImportRewrites(); }//from w w w. j a v a 2 s . c o m SearchPattern pattern = RefactoringSearchEngine.createOrPattern(new IJavaElement[] { fSubType }, IJavaSearchConstants.REFERENCES); IJavaSearchScope scope = RefactoringScopeFactory.create(fSubType, false); SearchResultGroup[] allReferences = RefactoringSearchEngine.search(pattern, scope, pm, result); SearchResultGroup[] references = Checks.excludeCompilationUnits(allReferences, result); if (result.hasFatalError()) { return result; } result.merge(Checks.checkCompileErrorsInAffectedFiles(references)); if (result.hasFatalError()) { return result; } for (int i = 0; i < references.length; ++i) { SearchResultGroup group = references[i]; SearchMatch[] searchResults = group.getSearchResults(); CompilationUnitRewrite currentCURewrite = getCachedCURewrite(group.getCompilationUnit()); for (int j = 0; j < searchResults.length; j++) { SearchMatch match = searchResults[j]; if (match.isInsideDocComment()) continue; ASTNode target = getSelectedNode(group.getCompilationUnit(), currentCURewrite.getRoot(), match.getOffset(), match.getLength()); if (target != null) { currentCURewrite.getImportRewrite().addImport(getSuperType().getFullyQualifiedName()); SimpleName superTypeName = currentCURewrite.getASTRewrite().getAST() .newSimpleName(getSuperType().getElementName()); SimpleType superTypeNode = currentCURewrite.getASTRewrite().getAST() .newSimpleType(superTypeName); currentCURewrite.getASTRewrite().replace(target, superTypeNode, null); } } createChangeAndDiscardRewrite(group.getCompilationUnit()); } result.merge(Checks.validateModifiesFiles(getAllFilesToModify(), getValidationContext())); return result; }
From source file:org.eclipse.ajdt.internal.ui.refactoring.pullout.PullOutRefactoring.java
License:Open Source License
/** * Check whether references to moved elements become broken. Update status message * accordingly (but only if allowModifierConversion is set to false). * // www .ja v a2 s. c om * @return true if no references become broken */ private boolean checkIncomingReferences(ITDCreator movedMember, RefactoringStatus status) throws CoreException { if (movedMember.wasPublic()) return true; //Always ok if member was already public boolean ok = true; IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { javaProject }); SearchPattern pattern = SearchPattern.createPattern(movedMember.getMember(), IJavaSearchConstants.REFERENCES); SearchEngine engine = new SearchEngine(); final Set<SearchMatch> references = new HashSet<SearchMatch>(); engine.search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope, new SearchRequestor() { @Override public void acceptSearchMatch(SearchMatch match) throws CoreException { if (match.getAccuracy() == SearchMatch.A_ACCURATE && !match.isInsideDocComment()) references.add(match); } }, new NullProgressMonitor()); String referredPkg = getPackageName(targetAspect); // since the element is moved it's package *will* be... for (SearchMatch match : references) { if (match.getElement() instanceof IJavaElement) { IJavaElement referingElement = (IJavaElement) match.getElement(); if (!isMoved(referingElement)) { if (movedMember.wasPrivate()) { ok = false; if (isAllowMakePublic()) { movedMember.addModifier(Modifier.PUBLIC); } else { status.addWarning( "The moved private member '" + movedMember.getElementName() + "' will not be accessible" + " after refactoring.", makeContext(match)); } } else if (movedMember.wasPackageVisible() || movedMember.wasProtected()) { String referringPkg = getPackageName(referingElement); if (referringPkg != null && !referringPkg.equals(referredPkg)) { ok = false; if (isAllowMakePublic()) { movedMember.addModifier(Modifier.PUBLIC); } else { status.addWarning( "The moved member '" + movedMember.getElementName() + "' may not be accessible " + "after refactoring", makeContext(match)); } } } } } } return ok; }
From source file:org.eclipse.andmore.internal.editors.layout.gle2.CustomViewFinder.java
License:Open Source License
private Pair<List<String>, List<String>> findViews(final boolean layoutsOnly) { final Set<String> customViews = new HashSet<String>(); final Set<String> thirdPartyViews = new HashSet<String>(); ProjectState state = Sdk.getProjectState(mProject); final List<IProject> libraries = state != null ? state.getFullLibraryProjects() : Collections.<IProject>emptyList(); SearchRequestor requestor = new SearchRequestor() { @Override/*from w w w . j ava 2 s . com*/ public void acceptSearchMatch(SearchMatch match) throws CoreException { // Ignore matches in comments if (match.isInsideDocComment()) { return; } Object element = match.getElement(); if (element instanceof ResolvedBinaryType) { // Third party view ResolvedBinaryType type = (ResolvedBinaryType) element; IPackageFragment fragment = type.getPackageFragment(); IPath path = fragment.getPath(); String last = path.lastSegment(); // Filter out android.jar stuff if (last.equals(FN_FRAMEWORK_LIBRARY)) { return; } if (!isValidView(type, layoutsOnly)) { return; } IProject matchProject = match.getResource().getProject(); if (mProject == matchProject || libraries.contains(matchProject)) { String fqn = type.getFullyQualifiedName(); thirdPartyViews.add(fqn); } } else if (element instanceof ResolvedSourceType) { // User custom view IProject matchProject = match.getResource().getProject(); if (mProject == matchProject || libraries.contains(matchProject)) { ResolvedSourceType type = (ResolvedSourceType) element; if (!isValidView(type, layoutsOnly)) { return; } String fqn = type.getFullyQualifiedName(); fqn = fqn.replace('$', '.'); customViews.add(fqn); } } } }; try { IJavaProject javaProject = BaseProjectHelper.getJavaProject(mProject); if (javaProject != null) { String className = layoutsOnly ? CLASS_VIEWGROUP : CLASS_VIEW; IType viewType = javaProject.findType(className); if (viewType != null) { IJavaSearchScope scope = SearchEngine.createHierarchyScope(viewType); SearchParticipant[] participants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }; int matchRule = SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE; SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.CLASS, IJavaSearchConstants.IMPLEMENTORS, matchRule); SearchEngine engine = new SearchEngine(); engine.search(pattern, participants, scope, requestor, new NullProgressMonitor()); } } } catch (CoreException e) { AndmoreAndroidPlugin.log(e, null); } List<String> custom = new ArrayList<String>(customViews); List<String> thirdParty = new ArrayList<String>(thirdPartyViews); if (!layoutsOnly) { // Update our cached answers (unless we were filtered on only layouts) mCustomViews = custom; mThirdPartyViews = thirdParty; } return Pair.of(custom, thirdParty); }
From source file:org.eclipse.che.plugin.java.testing.AnnotationSearchRequestor.java
License:Open Source License
@Override public void acceptSearchMatch(SearchMatch match) throws CoreException { if (match.getAccuracy() == SearchMatch.A_ACCURATE && !match.isInsideDocComment()) { Object element = match.getElement(); if (element instanceof IType || element instanceof IMethod) { IMember member = (IMember) element; IType type = member.getElementType() == IJavaElement.TYPE ? (IType) member : member.getDeclaringType(); addTypeAndSubtypes(type);/* w ww .ja v a 2s . c o m*/ } } }
From source file:org.grails.ide.eclipse.core.junit.Grails20AwareTestFinder.java
License:Open Source License
private void searchForTests(IJavaElement element, final Set result, IProgressMonitor pm) throws CoreException { //Loosely based on a copy of org.eclipse.jdt.internal.junit.launcher.JUnit4TestFinder.findTestsInContainer(IJavaElement, Set, IProgressMonitor) //Modifed to search just for Grails test classes marked by @TestFor annotations try {//from w ww . j a v a 2 s .c o m pm.beginTask(JUnitMessages.JUnit4TestFinder_searching_description, 4); IRegion region = CoreTestSearchEngine.getRegion(element); IJavaSearchScope scope = SearchEngine.createJavaSearchScope(region.getElements(), IJavaSearchScope.SOURCES); int matchRule = SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE; SearchPattern testForPattern = SearchPattern.createPattern(TEST_FOR_ANNOT_NAME, IJavaSearchConstants.ANNOTATION_TYPE, IJavaSearchConstants.ANNOTATION_TYPE_REFERENCE, matchRule); SearchPattern testPattern = SearchPattern.createPattern("*Tests", IJavaSearchConstants.TYPE, IJavaSearchConstants.DECLARATIONS, matchRule); SearchPattern theSearchPattern = SearchPattern.createOrPattern(testForPattern, testPattern); SearchParticipant[] searchParticipants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }; SearchRequestor requestor = new SearchRequestor() { @Override public void acceptSearchMatch(SearchMatch match) throws CoreException { if (match.getAccuracy() == SearchMatch.A_ACCURATE && !match.isInsideDocComment()) { Object element = match.getElement(); if (element instanceof IType && isGrail20Test((IType) element)) { result.add(element); } } } }; new SearchEngine().search(theSearchPattern, searchParticipants, scope, requestor, new SubProgressMonitor(pm, 2)); } finally { pm.done(); } }