diff options
Diffstat (limited to 'jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java')
-rw-r--r-- | jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java | 221 |
1 files changed, 0 insertions, 221 deletions
diff --git a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java b/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java deleted file mode 100644 index 8ac58072d..000000000 --- a/jsf/plugins/org.eclipse.jst.jsf.common.ui/src/org/eclipse/jst/jsf/common/ui/internal/dialogfield/JavaSearchScope.java +++ /dev/null @@ -1,221 +0,0 @@ -/******************************************************************************* - * 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.HashSet; - -import org.eclipse.core.resources.IProject; -import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IPath; -import org.eclipse.jdt.core.IClasspathEntry; -import org.eclipse.jdt.core.IJavaElement; -import org.eclipse.jdt.core.IJavaProject; -import org.eclipse.jdt.core.IType; -import org.eclipse.jdt.core.ITypeHierarchy; -import org.eclipse.jdt.core.JavaCore; -import org.eclipse.jdt.core.JavaModelException; -import org.eclipse.jdt.core.search.IJavaSearchScope; -import org.eclipse.jst.jsf.common.ui.IFileFolderConstants; - -/** - * @author mengbo - */ -/*package*/ class JavaSearchScope implements IJavaSearchScope { - private final IProject _project; - - private final String _superType; - - private HashSet _allowedTypeSet; - - private IPath[] _enclosingProjectsAndJars; - - private IProject[] _relativeProjects; - - /** - * @param project - * @param superType - */ - public JavaSearchScope(IProject project, String superType) { - this._project = project; - this._superType = superType; - computeRelativeProjects(); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#enclosingProjectsAndJars() - */ - public IPath[] enclosingProjectsAndJars() { - if (_enclosingProjectsAndJars == null) { - ArrayList list = new ArrayList(); - for (int i = 0; i < _relativeProjects.length; i++) { - try { - if (_relativeProjects[i].hasNature(JavaCore.NATURE_ID)) { - IJavaProject javaProject = JavaCore - .create(_relativeProjects[i]); - IClasspathEntry[] classpath = javaProject - .getResolvedClasspath(true); - for (int j = 0; j < classpath.length; j++) { - list.add(classpath[j].getPath()); - } - list.add(javaProject.getPath()); - } - } catch (CoreException e)// NOPMD - { - // skip the project. - } - } - _enclosingProjectsAndJars = (IPath[]) list.toArray(new IPath[(list - .size())]); - } - return _enclosingProjectsAndJars; - } - - private void computeRelativeProjects() { - try { - IProject[] referencedProjects = _project.getReferencedProjects(); - _relativeProjects = new IProject[referencedProjects.length + 1]; - System.arraycopy(referencedProjects, 0, _relativeProjects, 1, - referencedProjects.length); - _relativeProjects[0] = _project; - } catch (CoreException e) { - _relativeProjects = new IProject[] { _project }; - } - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(java.lang.String) - */ - public boolean encloses(String resourcePath) { - if (_allowedTypeSet == null) { - try { - _allowedTypeSet = findAllowedTypes(_superType); - } catch (CoreException e) { - e.printStackTrace(); - } - } - if (_allowedTypeSet == null) { - _allowedTypeSet = new HashSet(); - } - int separatorIndex = resourcePath.indexOf(JAR_FILE_ENTRY_SEPARATOR); - if (separatorIndex != -1) { - String className = resourcePath.substring(separatorIndex + 1, - resourcePath.length() - 6).replace('/', '.'); - if (_allowedTypeSet.contains(className)) { - return true; - } - } else if (_allowedTypeSet.contains(resourcePath)) { - return true; - } - return false; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#encloses(org.eclipse.jdt.core.IJavaElement) - */ - public boolean encloses(IJavaElement element) { - return encloses(element.getPath().toString()); - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesBinaries() - */ - public boolean includesBinaries() { - return true; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#includesClasspaths() - */ - public boolean includesClasspaths() { - return true; - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesBinaries(boolean) - */ - public void setIncludesBinaries(boolean includesBinaries) { - // do nothing, includeBinaries always true - } - - /* - * (non-Javadoc) - * - * @see org.eclipse.jdt.core.search.IJavaSearchScope#setIncludesClasspaths(boolean) - */ - public void setIncludesClasspaths(boolean includesClasspaths) { - // do nothing, includeClasspaths always trues - } - - private HashSet findAllowedTypes(String superType) throws CoreException { - HashSet set = new HashSet(); - - IProject[] projects = _relativeProjects; - - for (int i = 0; i < projects.length; i++) { - IType type = null; - if (projects[i].hasNature(JavaCore.NATURE_ID)) { - IJavaProject javaProject = JavaCore.create(projects[i]); - if (superType != null) { - try { - type = javaProject.findType(superType); - if (type != null) { - ITypeHierarchy typeHierarchy = type - .newTypeHierarchy(javaProject, null); - IType[] subtypes = typeHierarchy - .getAllSubtypes(type); - for (int j = 0; j < subtypes.length; j++) { - if (!subtypes[j].isBinary()) { - set.add(subtypes[j].getPath().toString()); - } else { - String path = subtypes[j].getPath() - .toString(); - if (path != null - && path - .endsWith(IFileFolderConstants.DOT - + IFileFolderConstants.EXT_JAR)) { - set.add(subtypes[j] - .getFullyQualifiedName()); - } else { - set.add(path); - } - } - } - } - } catch (JavaModelException e) { - e.printStackTrace(); - } - } - } - } - return set; - } - - /** - * @return Returns the superType. - */ - public String getSuperType() { - return _superType; - } -} |