blob: 855e4c78ac7ed2ddd0a87ab32766a6d6e7414084 [file] [log] [blame]
package org.eclipse.jst.jsf.common.internal.finder.acceptor;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.IProject;
import org.eclipse.jdt.core.IPackageFragmentRoot;
import org.eclipse.jst.jsf.common.internal.finder.VisitorMatcher.MatchingAcceptor;
import org.eclipse.jst.jsf.common.internal.resource.ClasspathJarFile;
/**
* Accepts all the jars underlying a classpath entry.
*
* @author cbateman
*
*/
public class ClasspathEntryJarMatchingAcceptor extends
MatchingAcceptor<IPackageFragmentRoot, ClasspathJarFile>
{
private final IProject project;
/**
* @param project
*/
public ClasspathEntryJarMatchingAcceptor(final IProject project)
{
super();
this.project = project;
}
@Override
protected Collection<? extends ClasspathJarFile> getInputChildren(
final IPackageFragmentRoot inputType)
{
final List<ClasspathJarFile> jarFiles = new ArrayList<ClasspathJarFile>();
if (inputType.isArchive())
{
jarFiles.add(new ClasspathJarFile(project, inputType.getPath()));
}
// if (inputType.exists())
// {
// List<ClasspathJarFile> jarFiles = new ArrayList<ClasspathJarFile>();
// switch (inputType.getEntryKind())
// {
// // this entry describes a source root in its project
// case IClasspathEntry.CPE_SOURCE:
// break;
// // - this entry describes a folder or JAR containing
// // binaries
// case IClasspathEntry.CPE_LIBRARY:
// {
// jarFiles.add(new ClasspathJarFile(project, inputType));
// }
// break;
// // - this entry describes another project
// case IClasspathEntry.CPE_PROJECT:
// // {
// // final IPath pathToProject = entry.getPath();
// // IWorkspace wkspace = ResourcesPlugin.getWorkspace();
// // IResource res =
// // wkspace.getRoot().findMember(pathToProject);
// // if (res instanceof IProject)
// // {
// // tagLibsFound.addAll();
// // }
// // }
// break;
// // - this entry describes a project or library indirectly
// // via a
// // classpath variable in the first segment of the path *
// case IClasspathEntry.CPE_VARIABLE:
// break;
// // - this entry describes set of entries referenced
// // indirectly
// // via a classpath container
// case IClasspathEntry.CPE_CONTAINER:
// break;
// }
// }
return jarFiles;
}
@Override
protected Collection<? extends ClasspathJarFile> getVisitableChildren(
final ClasspathJarFile visitType)
{
return Collections.EMPTY_LIST;
}
}