Example usage for org.eclipse.jdt.core.search IJavaSearchConstants PACKAGE

List of usage examples for org.eclipse.jdt.core.search IJavaSearchConstants PACKAGE

Introduction

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

Prototype

int PACKAGE

To view the source code for org.eclipse.jdt.core.search IJavaSearchConstants PACKAGE.

Click Source Link

Document

The searched element is a package.

Usage

From source file:bndtools.editor.pkgpatterns.PkgPatternsProposalProvider.java

License:Open Source License

@Override
protected Collection<? extends IContentProposal> doGenerateProposals(String contents, int position) {
    String prefix = contents.substring(0, position);

    final int replaceFromPos;
    if (prefix.startsWith("!")) { //$NON-NLS-1$
        prefix = prefix.substring(1);//www.ja va2  s  .  co  m
        replaceFromPos = 1;
    } else {
        replaceFromPos = 0;
    }

    Comparator<PkgPatternProposal> comparator = new Comparator<PkgPatternProposal>() {
        @Override
        public int compare(PkgPatternProposal o1, PkgPatternProposal o2) {
            int result = o1.getPackageFragment().getElementName()
                    .compareTo(o2.getPackageFragment().getElementName());
            if (result == 0) {
                result = Boolean.valueOf(o1.isWildcard()).compareTo(Boolean.valueOf(o2.isWildcard()));
            }
            return result;
        }
    };
    final TreeSet<PkgPatternProposal> result = new TreeSet<PkgPatternProposal>(comparator);

    final IJavaSearchScope scope = SearchEngine
            .createJavaSearchScope(new IJavaElement[] { searchContext.getJavaProject() });
    final SearchPattern pattern = SearchPattern.createPattern("*" + prefix + "*", IJavaSearchConstants.PACKAGE,
            IJavaSearchConstants.DECLARATIONS, SearchPattern.R_PATTERN_MATCH);
    final SearchRequestor requestor = new SearchRequestor() {
        @Override
        public void acceptSearchMatch(SearchMatch match) throws CoreException {
            IPackageFragment pkg = (IPackageFragment) match.getElement();
            // Reject the default package and any package starting with
            // "java." since these cannot be imported
            if (pkg.isDefaultPackage() || pkg.getElementName().startsWith("java."))
                return;

            result.add(new PkgPatternProposal(pkg, false, replaceFromPos));
            result.add(new PkgPatternProposal(pkg, true, replaceFromPos));
        }
    };
    IRunnableWithProgress runnable = new IRunnableWithProgress() {
        @Override
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
            try {
                new SearchEngine().search(pattern,
                        new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
                        requestor, monitor);
            } catch (CoreException e) {
                throw new InvocationTargetException(e);
            }
        }
    };

    try {
        IRunnableContext runContext = searchContext.getRunContext();
        if (runContext != null) {
            runContext.run(false, false, runnable);
        } else {
            runnable.run(new NullProgressMonitor());
        }
        return result;
    } catch (InvocationTargetException e) {
        logger.logError("Error searching for packages.", e);
        return Collections.emptyList();
    } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        return Collections.emptyList();
    }
}

From source file:bndtools.internal.pkgselection.JavaSearchScopePackageLister.java

License:Open Source License

@Override
public String[] getPackages(boolean includeNonSource, IPackageFilter filter) throws PackageListException {
    final List<IJavaElement> packageList = new LinkedList<IJavaElement>();
    final SearchRequestor requestor = new SearchRequestor() {
        @Override//w w  w.  j ava 2  s . c om
        public void acceptSearchMatch(SearchMatch match) throws CoreException {
            IJavaElement enclosingElement = (IJavaElement) match.getElement();
            String name = enclosingElement.getElementName();
            if (name.length() > 0) { // Do not include default pkg
                packageList.add(enclosingElement);
            }
        }
    };
    final SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.PACKAGE,
            IJavaSearchConstants.DECLARATIONS, SearchPattern.R_PATTERN_MATCH | SearchPattern.R_CASE_SENSITIVE);

    IRunnableWithProgress operation = new IRunnableWithProgress() {
        @Override
        public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException {
            try {
                new SearchEngine().search(pattern, SearchUtils.getDefaultSearchParticipants(), scope, requestor,
                        monitor);
            } catch (CoreException e) {
                throw new InvocationTargetException(e);
            }
        }
    };

    try {
        runContext.run(true, true, operation);
    } catch (InvocationTargetException e) {
        throw new PackageListException(e.getCause());
    } catch (InterruptedException e) {
        throw new PackageListException("Operation interrupted");
    }

    // Remove non-source and excludes
    Set<String> packageNames = new LinkedHashSet<String>();
    for (Iterator<IJavaElement> iter = packageList.iterator(); iter.hasNext();) {
        boolean omit = false;
        IJavaElement element = iter.next();
        if (!includeNonSource) {
            IPackageFragment pkgFragment = (IPackageFragment) element;
            try {
                if (pkgFragment.getCompilationUnits().length == 0) {
                    omit = true;
                }
            } catch (JavaModelException e) {
                throw new PackageListException(e);
            }
        }

        if (filter != null && !filter.select(element.getElementName())) {
            omit = true;
        }
        if (!omit) {
            packageNames.add(element.getElementName());
        }
    }

    return packageNames.toArray(new String[0]);
}

From source file:ca.mcgill.cs.swevo.jayfx.FastConverter.java

License:Open Source License

/**
 * Returns a Java element associated with pElement. This method cannot track
 * local or anonymous types or any of their members, primitive types, or
 * array types. It also cannot find initializers, default constructors that
 * are not explicitly declared, or non-top-level types outside the project
 * analyzed. If such types are passed as argument, a ConversionException is
 * thrown.// w  w w. j a v a  2s.  c o  m
 * 
 * @param pElement
 *            The element to convert. Never null.
 * @return Never null.
 * @throws ConversionException
 *             If the element cannot be
 */
public IJavaElement getJavaElement(final IElement pElement) throws ConversionException {
    // assert( pElement!= null );
    IJavaElement lReturn = null;
    if (pElement.getCategory() == Category.CLASS) {
        lReturn = this.aTypeMap.get(pElement.getId());
        if (lReturn == null)
            // TODO Make this smarter in the case of multiple projects
            if (this.aTypeMap.size() > 0)
                try {
                    lReturn = this.aTypeMap.values().iterator().next().getJavaProject()
                            .findType(pElement.getId());
                } catch (final JavaModelException pException) {
                    // noting
                }
        if (lReturn == null)
            throw new ConversionException("Cannot find type " + pElement);
    } else if (pElement.getCategory() == Category.PACKAGE) {
        String id = pElement.getId();
        final SearchPattern pattern = SearchPattern.createPattern(id, IJavaSearchConstants.PACKAGE,
                IJavaSearchConstants.DECLARATIONS,
                SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE);
        Collection<SearchMatch> matches = SearchEngineUtil.search(pattern, null);
        if (matches.isEmpty())
            throw new ConversionException("Cannot find type " + pElement);
        else
            lReturn = (IJavaElement) matches.iterator().next().getElement();
    } else {
        final IJavaElement lDeclaringClass = this.getJavaElement(pElement.getDeclaringClass());
        if (pElement.getCategory() == Category.FIELD) {
            lReturn = ((IType) lDeclaringClass).getField(((FieldElement) pElement).getSimpleName());
            if (lReturn == null)
                throw new ConversionException("Cannot find field " + pElement);
        } else if (pElement.getCategory() == Category.METHOD)
            try {
                final IMethod[] lMethods = ((IType) lDeclaringClass).getMethods();
                lReturn = this.findMethod((MethodElement) pElement, lMethods);

                // if( lReturn == null &&
                // isDefaultConstructor((MethodElement)pElement)) {
                //
                // }

                if (lReturn == null)
                    throw new ConversionException("Cannot find method " + pElement);
            } catch (final JavaModelException pException) {
                throw new ConversionException("Cannot convert method " + pElement);
            }
        else
            throw new ConversionException("Unsupported element type " + pElement.getClass().getName());
    }
    // assert( lReturn != null );
    return lReturn;
}

From source file:com.iw.plugins.spindle.ant.AntScriptGenerator.java

License:Mozilla Public License

/**
 *  //from   w ww.j  a v a 2 s . c  om
 */
private void harvestServletJars(IProgressMonitor monitor) {
    try {
        IJavaProject jproject = fTapestryProject.getJavaProject();
        if (jproject == null)
            return;

        // let's locate all occurances of a package in the project classpath that
        // we know should be
        // from the java servlet jar..

        SearchPattern pattern = SearchPattern.createPattern("javax.servlet.http", IJavaSearchConstants.PACKAGE,
                IJavaSearchConstants.DECLARATIONS, SearchPattern.R_EXACT_MATCH);

        IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { jproject });

        //we could get lots of hits for various reasons so lets collect the ones
        // we are interested in..
        //we collect the roots (jars) that contain the package of interest.
        final List roots = new ArrayList();

        SearchRequestor requestor = new SearchRequestor() {
            public void acceptSearchMatch(SearchMatch match) throws CoreException {
                //only keep the roots that are in jar files and that we have not
                // already seen!
                Object element = match.getElement();
                if (element instanceof IPackageFragment) {
                    IPackageFragment frag = (IPackageFragment) element;
                    if (frag.getKind() == IPackageFragmentRoot.K_BINARY) {
                        IPackageFragmentRoot root = (IPackageFragmentRoot) frag.getParent();
                        if (!roots.contains(root))
                            roots.add(root);
                    }
                }
            }
        };
        //    Search - do the search
        SearchEngine searchEngine = new SearchEngine();
        searchEngine.search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
                scope, requestor, monitor);

        if (!roots.isEmpty())
            fServletAPIRoots = roots;

    } catch (CoreException e) {
        UIPlugin.log(e);
    }
}

From source file:com.iw.plugins.spindle.util.FieldBindingsPreferencePage.java

License:Mozilla Public License

public static IJavaElement[] unfold(String folded) {
    if (folded != null && !"".equals(folded.trim())) {
        ISearchPattern searchPattern = null;
        StringTokenizer tok = new StringTokenizer(folded, ",");
        while (tok.hasMoreTokens()) {
            String fragment = tok.nextToken();

            if (searchPattern == null) {

                searchPattern = SearchEngine.createSearchPattern(fragment, IJavaSearchConstants.PACKAGE,
                        IJavaSearchConstants.DECLARATIONS, false);
            } else {

                searchPattern = SearchEngine.createOrSearchPattern(searchPattern,
                        SearchEngine.createSearchPattern(fragment, IJavaSearchConstants.PACKAGE,
                                IJavaSearchConstants.DECLARATIONS, false));
            }/*from w ww . ja  v  a2 s .  co  m*/
        }
        try {
            UnfoldSearchCollector collector = new UnfoldSearchCollector();
            long start = new Date().getTime();
            new SearchEngine().search(TapestryPlugin.getDefault().getWorkspace(), searchPattern,
                    SearchEngine.createWorkspaceScope(), collector);
            return collector.getFoundElements();
        } catch (JavaModelException jmex) {
            jmex.printStackTrace();
        }
    }
    return new IJavaElement[0];
}

From source file:com.siteview.mde.internal.ui.search.dependencies.AddNewDependenciesOperation.java

License:Open Source License

protected void findSecondaryDependencies(String[] secDeps, Set ignorePkgs, Map newDeps, IBundle bundle,
        boolean useRequireBundle, IProgressMonitor monitor) {
    IJavaProject jProject = JavaCore.create(fProject);
    SearchEngine engine = new SearchEngine();
    if (ignorePkgs == null)
        ignorePkgs = new HashSet(2);
    monitor.beginTask(MDEUIMessages.AddNewDependenciesOperation_searchProject, secDeps.length);
    for (int j = 0; j < secDeps.length; j++) {
        try {/* ww w.  j  a  v a2s .  c  o  m*/
            if (monitor.isCanceled())
                return;
            IProgressMonitor subMonitor = new SubProgressMonitor(monitor, 1);
            String pluginId = secDeps[j];
            IMonitorModelBase base = MonitorRegistry.findModel(secDeps[j]);
            if (base != null) {
                ExportPackageDescription[] exported = findExportedPackages(base.getBundleDescription());
                IJavaSearchScope searchScope = PluginJavaSearchUtil.createSeachScope(jProject);
                subMonitor.beginTask(
                        NLS.bind(MDEUIMessages.AddNewDependenciesOperation_searchForDependency, pluginId),
                        exported.length);
                for (int i = 0; i < exported.length; i++) {
                    String pkgName = exported[i].getName();
                    if (!ignorePkgs.contains(pkgName)) {
                        ReferenceFinder requestor = new ReferenceFinder();
                        engine.search(
                                SearchPattern.createPattern(pkgName, IJavaSearchConstants.PACKAGE,
                                        IJavaSearchConstants.REFERENCES, SearchPattern.R_EXACT_MATCH),
                                new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
                                searchScope, requestor, null);
                        if (requestor.foundMatches()) {
                            fNewDependencies = true;
                            ignorePkgs.add(pkgName);
                            newDeps.put(exported[i], pluginId);
                            if (useRequireBundle) {
                                // since using require-bundle, rest of packages will be available when bundle is added.  
                                for (; i < exported.length; i++)
                                    ignorePkgs.add(exported[i].getName());
                            }
                        }
                    }
                    subMonitor.worked(1);
                }
            }
            subMonitor.done();
        } catch (CoreException e) {
            monitor.done();
        }
    }
}

From source file:com.siteview.mde.internal.ui.search.dependencies.GatherUnusedDependenciesOperation.java

License:Open Source License

private boolean provideJavaClasses(ImportPackageObject pkg, IProgressMonitor monitor) {
    try {/*from w w w .  j  a  va  2s .com*/
        IProject project = fModel.getUnderlyingResource().getProject();

        if (!project.hasNature(JavaCore.NATURE_ID))
            return false;

        monitor.beginTask("", 1); //$NON-NLS-1$
        IJavaProject jProject = JavaCore.create(project);
        SearchEngine engine = new SearchEngine();
        IJavaSearchScope searchScope = PluginJavaSearchUtil.createSeachScope(jProject);
        Requestor requestor = new Requestor();
        String packageName = pkg.getName();

        engine.search(
                SearchPattern.createPattern(packageName, IJavaSearchConstants.PACKAGE,
                        IJavaSearchConstants.REFERENCES, SearchPattern.R_EXACT_MATCH),
                new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, searchScope, requestor,
                new SubProgressMonitor(monitor, 1));

        if (requestor.foundMatches())
            return true;
    } catch (CoreException e) {
    } finally {
        monitor.done();
    }
    return false;
}

From source file:edu.brown.cs.bubbles.bedrock.BedrockJava.java

License:Open Source License

/********************************************************************************/

void handleJavaSearch(String proj, String bid, String patstr, String foritems, boolean defs, boolean refs,
        boolean impls, boolean equiv, boolean exact, boolean system, IvyXmlWriter xw) throws BedrockException {
    IJavaProject ijp = getJavaProject(proj);

    our_plugin.waitForEdits();//from  w ww  .ja  va 2 s.c  om

    int forflags = 0;
    if (foritems == null)
        forflags = IJavaSearchConstants.TYPE;
    else if (foritems.equalsIgnoreCase("CLASS"))
        forflags = IJavaSearchConstants.CLASS;
    else if (foritems.equalsIgnoreCase("INTERFACE"))
        forflags = IJavaSearchConstants.INTERFACE;
    else if (foritems.equalsIgnoreCase("ENUM"))
        forflags = IJavaSearchConstants.ENUM;
    else if (foritems.equalsIgnoreCase("ANNOTATION"))
        forflags = IJavaSearchConstants.ANNOTATION_TYPE;
    else if (foritems.equalsIgnoreCase("CLASS&ENUM"))
        forflags = IJavaSearchConstants.CLASS_AND_ENUM;
    else if (foritems.equalsIgnoreCase("CLASS&INTERFACE"))
        forflags = IJavaSearchConstants.CLASS_AND_INTERFACE;
    else if (foritems.equalsIgnoreCase("TYPE"))
        forflags = IJavaSearchConstants.TYPE;
    else if (foritems.equalsIgnoreCase("FIELD"))
        forflags = IJavaSearchConstants.FIELD;
    else if (foritems.equalsIgnoreCase("METHOD"))
        forflags = IJavaSearchConstants.METHOD;
    else if (foritems.equalsIgnoreCase("CONSTRUCTOR"))
        forflags = IJavaSearchConstants.CONSTRUCTOR;
    else if (foritems.equalsIgnoreCase("PACKAGE"))
        forflags = IJavaSearchConstants.PACKAGE;
    else if (foritems.equalsIgnoreCase("FIELDWRITE"))
        forflags = IJavaSearchConstants.FIELD | IJavaSearchConstants.WRITE_ACCESSES;
    else if (foritems.equalsIgnoreCase("FIELDREAD"))
        forflags = IJavaSearchConstants.FIELD | IJavaSearchConstants.READ_ACCESSES;
    else
        forflags = IJavaSearchConstants.TYPE;

    int limit = 0;
    if (defs && refs)
        limit = IJavaSearchConstants.ALL_OCCURRENCES;
    else if (defs)
        limit = IJavaSearchConstants.DECLARATIONS;
    else if (refs)
        limit = IJavaSearchConstants.REFERENCES;
    else if (impls)
        limit = IJavaSearchConstants.IMPLEMENTORS;

    int mrule = SearchPattern.R_PATTERN_MATCH;
    if (equiv)
        mrule = SearchPattern.R_EQUIVALENT_MATCH;
    else if (exact)
        mrule = SearchPattern.R_EXACT_MATCH;

    SearchPattern pat = SearchPattern.createPattern(patstr, forflags, limit, mrule);
    if (pat == null) {
        throw new BedrockException(
                "Invalid java search pattern `" + patstr + "' " + forflags + " " + limit + " " + mrule);
    }

    FindFilter filter = null;
    if (forflags == IJavaSearchConstants.METHOD) {
        String p = patstr;
        int idx = p.indexOf("(");
        if (idx > 0)
            p = p.substring(0, idx);
        idx = p.lastIndexOf(".");
        if (idx > 0) {
            if (defs)
                filter = new ClassFilter(p.substring(0, idx));
        }
    }

    // TODO: create scope for only user's items
    IJavaElement[] pelt;
    if (ijp != null)
        pelt = new IJavaElement[] { ijp };
    else
        pelt = getAllProjects();

    ICompilationUnit[] working = getWorkingElements(pelt);
    for (ICompilationUnit xcu : working) {
        try {
            BedrockPlugin.logD("WORK WITH " + xcu.isWorkingCopy() + " " + xcu.getPath() + xcu.getSourceRange());
        } catch (JavaModelException e) {
            BedrockPlugin.logD("WORK WITH ERROR: " + e);
        }
    }

    IJavaSearchScope scp = null;
    int fg = IJavaSearchScope.SOURCES | IJavaSearchScope.REFERENCED_PROJECTS;
    if (system) {
        fg |= IJavaSearchScope.SYSTEM_LIBRARIES | IJavaSearchScope.APPLICATION_LIBRARIES;
        scp = SearchEngine.createWorkspaceScope();
    } else {
        scp = SearchEngine.createJavaSearchScope(pelt, fg);
    }

    SearchEngine se = new SearchEngine(working);
    SearchParticipant[] parts = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() };
    FindHandler fh = new FindHandler(xw, filter, system);

    BedrockPlugin.logD("BEGIN SEARCH " + pat);
    BedrockPlugin.logD("SEARCH SCOPE " + system + " " + fg + " " + scp);

    try {
        se.search(pat, parts, scp, fh, null);
    } catch (Throwable e) {
        throw new BedrockException("Problem doing Java search: " + e, e);
    }
}

From source file:net.harawata.mybatipse.mybatis.XmlCompletionProposalComputer.java

License:Open Source License

private void searchPackage(String matchString, IJavaSearchScope scope, SearchRequestor requestor)
        throws CoreException {
    SearchPattern pattern = SearchPattern.createPattern(matchString + "*", IJavaSearchConstants.PACKAGE,
            IJavaSearchConstants.DECLARATIONS, SearchPattern.R_PREFIX_MATCH);
    SearchEngine searchEngine = new SearchEngine();
    searchEngine.search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }, scope,
            requestor, null);// w  ww  .j  a  v  a  2 s.  c o  m
}

From source file:net.sourceforge.metrics.calculators.RMartinCouplings.java

License:Open Source License

private Metric calculateEfferentCoupling(PackageFragmentMetrics source) {
    SearchPattern pattern = SearchPattern.createPattern("*", IJavaSearchConstants.PACKAGE,
            IJavaSearchConstants.REFERENCES, SearchPattern.R_PATTERN_MATCH);
    IJavaSearchScope scope = SearchEngine.createJavaSearchScope(new IJavaElement[] { source.getJavaElement() });
    SearchEngine searchEngine = new SearchEngine();
    try {/*from  w w  w  .j a  v  a2 s  . c  o  m*/
        EfferentCollector c = new EfferentCollector(source);
        // searchEngine.search(ResourcesPlugin.getWorkspace(), pattern,
        // scope, c);
        searchEngine.search(pattern, new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() },
                scope, c, null);
        return c.getResult();
    } catch (CoreException e) {
        Log.logError("Error calculating Efferent Coupling", e);
        return null;
    }
}