Example usage for org.eclipse.jdt.internal.core JavaModelManager getWorkspaceScope

List of usage examples for org.eclipse.jdt.internal.core JavaModelManager getWorkspaceScope

Introduction

In this page you can find the example usage for org.eclipse.jdt.internal.core JavaModelManager getWorkspaceScope.

Prototype

public JavaWorkspaceScope getWorkspaceScope() 

Source Link

Usage

From source file:de.instantouch.model.search.SnakeTypeSearch.java

License:Open Source License

public ISnakeList<SnakeClassInfo<T>> findSnakeTypes(Class<T> snakeClass)
        throws JavaModelException, SnakeModelException {

    final ISnakeList<SnakeClassInfo<T>> allTypes = new SnakeList<SnakeClassInfo<T>>();

    IWorkspace workspace = ResourcesPlugin.getWorkspace();
    if (workspace == null) {
        throw new SnakeNotInitializedException("no workspace available");
    }/*from  w w w  . ja  v  a 2s . c o m*/

    JavaModelManager modelManager = JavaModelManager.getJavaModelManager();

    JavaWorkspaceScope workspaceScope = modelManager.getWorkspaceScope();

    SearchPattern snakePattern = SearchPattern.createPattern(snakeClass.getCanonicalName(),
            IJavaSearchConstants.CLASS, IJavaSearchConstants.IMPLEMENTORS, SearchPattern.R_EXACT_MATCH);

    SearchEngine searchEngine = new SearchEngine();

    SearchRequestor requestor = new SearchRequestor() {

        @Override
        public void acceptSearchMatch(SearchMatch match) throws CoreException {
            ;
            Object element = match.getElement();
            if (element instanceof BinaryType) {
                SnakeClassInfo<T> info = new SnakeClassInfo<T>();
                try {
                    info.createFrom((BinaryType) element);
                } catch (SnakeWrongTypeException e) {
                    SnakeLog.log(e);
                }
                allTypes.add(info);
            }

        }
    };

    SearchParticipant participants[] = { new JavaSearchParticipant() };

    try {
        searchEngine.search(snakePattern, participants, workspaceScope, requestor, null);
    } catch (CoreException e) {
        throw new SnakeModelException(e.getMessage());
    }

    return allTypes;

}