Example usage for org.eclipse.jdt.core.search SearchMatch isInsideDocComment

List of usage examples for org.eclipse.jdt.core.search SearchMatch isInsideDocComment

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.search SearchMatch isInsideDocComment.

Prototype

public final boolean isInsideDocComment() 

Source Link

Document

Returns whether this search match is inside a doc comment of a Java source file.

Usage

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();
    }
}