org.eclipse.jst.jsf.common.ui.internal.dialogfield.JavaSearchScopeDecorator.java Source code

Java tutorial

Introduction

Here is the source code for org.eclipse.jst.jsf.common.ui.internal.dialogfield.JavaSearchScopeDecorator.java

Source

/*******************************************************************************
 * Copyright (c) 2006 Sybase, Inc. and others.
 *
 * All rights reserved. This program and the accompanying materials
 * are made available under the terms of the Eclipse Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/epl-v10.html
 *
 * Contributors:
 *     Sybase, Inc. - initial API and implementation
 *******************************************************************************/
package org.eclipse.jst.jsf.common.ui.internal.dialogfield;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IJavaElement;
import org.eclipse.jdt.core.search.IJavaSearchScope;

/**
 * @author mengbo
 * @version 1.5
 */
/*package*/ class JavaSearchScopeDecorator implements IJavaSearchScope {
    JavaSearchScope[] _scopes = new JavaSearchScope[0];

    /**
     * @param project
     * @param superTypes
     */
    public JavaSearchScopeDecorator(IProject project, List superTypes) {
        List scopeList = new ArrayList();
        if (superTypes != null) {
            for (int i = 0; i < superTypes.size(); i++) {
                scopeList.add(new JavaSearchScope(project, superTypes.get(i).toString()));
            }
        }
        _scopes = (JavaSearchScope[]) scopeList.toArray(new JavaSearchScope[scopeList.size()]);
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(java.lang.String)
     */
    public boolean encloses(String resourcePath) {
        for (int i = 0; i < _scopes.length; i++) {
            if (_scopes[i].encloses(resourcePath) == true) {
                return true;
            }
        }
        return false;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(org.eclipse.jdt.core.IJavaElement)
     */
    public boolean encloses(IJavaElement element) {
        for (int i = 0; i < _scopes.length; i++) {
            if (_scopes[i].encloses(element) == true) {
                return true;
            }
        }
        return false;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#enclosingProjectsAndJars()
     */
    public IPath[] enclosingProjectsAndJars() {
        Set set = new HashSet();
        for (int i = 0; i < _scopes.length; i++) {
            set.addAll(Arrays.asList(_scopes[i].enclosingProjectsAndJars()));
        }
        return (IPath[]) set.toArray(new IPath[set.size()]);
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesBinaries()
     */
    public boolean includesBinaries() {
        for (int i = 0; i < _scopes.length; i++) {
            if (_scopes[i].includesBinaries() == true) {
                return true;
            }
        }
        return false;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesClasspaths()
     */
    public boolean includesClasspaths() {
        for (int i = 0; i < _scopes.length; i++) {
            if (_scopes[i].includesClasspaths() == true) {
                return true;
            }
        }
        return false;
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesBinaries(boolean)
     */
    public void setIncludesBinaries(boolean includesBinaries) {
        for (int i = 0; i < _scopes.length; i++) {
            _scopes[i].setIncludesBinaries(includesBinaries);
        }
    }

    /*
     * (non-Javadoc)
     * 
     * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesClasspaths(boolean)
     */
    public void setIncludesClasspaths(boolean includesClasspaths) {
        for (int i = 0; i < _scopes.length; i++) {
            _scopes[i].setIncludesClasspaths(includesClasspaths);
        }
    }

}