📄 filteringclasspathentryvisitor.java
字号:
/**
* Copyright (c) 2003-2005 Craig Setera
* All Rights Reserved.
* Licensed under the Eclipse Public License - v 1.0
* For more information see http://www.eclipse.org/legal/epl-v10.html
*/
package eclipseme.core.internal.utils;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.launching.JavaRuntime;
import eclipseme.core.internal.J2MEClasspathContainer;
import eclipseme.core.nature.J2MENature;
/**
* An IClasspathEntryVisitor that filters out the J2ME classpath
* container and the base JRE containers and libraries.
* <p />
* Copyright (c) 2003-2005 Craig Setera<br>
* All Rights Reserved.<br>
* Licensed under the Eclipse Public License - v 1.0<p/>
* <br>
* $Revision: 1.5 $
* <br>
* $Date: 2005/12/02 02:22:11 $
* <br>
* @author Craig Setera
*/
public abstract class FilteringClasspathEntryVisitor
extends AbstractClasspathEntryVisitor
{
private IClasspathEntry containerEntry;
/**
* @see eclipseme.core.internal.utils.IClasspathEntryVisitor#visitContainerBegin(IClasspathEntry, org.eclipse.jdt.core.IJavaProject, IPath, org.eclipse.core.runtime.IProgressMonitor)
*/
public boolean visitContainerBegin(
IClasspathEntry entry,
IJavaProject javaProject,
IPath containerPath,
IProgressMonitor monitor)
throws CoreException
{
String firstSegment = containerPath.segment(0);
boolean traverse =
!firstSegment.equals(J2MEClasspathContainer.J2ME_CONTAINER) &&
!firstSegment.equals(JavaRuntime.JRE_CONTAINER);
if (traverse) {
containerEntry = entry;
}
return traverse;
}
/**
* @see eclipseme.core.internal.utils.AbstractClasspathEntryVisitor#visitContainerEnd(org.eclipse.jdt.core.IClasspathEntry, org.eclipse.jdt.core.IJavaProject, org.eclipse.core.runtime.IPath, org.eclipse.core.runtime.IProgressMonitor)
*/
public void visitContainerEnd(
IClasspathEntry entry,
IJavaProject javaProject,
IPath containerPath,
IProgressMonitor monitor)
throws CoreException
{
containerPath = null;
}
/**
* @see eclipseme.core.internal.utils.IClasspathEntryVisitor#visitProject(IClasspathEntry, org.eclipse.jdt.core.IJavaProject, org.eclipse.jdt.core.IJavaProject, org.eclipse.core.runtime.IProgressMonitor)
*/
public boolean visitProject(
IClasspathEntry entry,
IJavaProject javaProject,
IJavaProject classpathProject, IProgressMonitor monitor)
throws CoreException
{
return !J2MENature.hasJ2MENature(classpathProject.getProject());
}
/**
* @see eclipseme.core.internal.utils.IClasspathEntryVisitor#visitVariable(IClasspathEntry, org.eclipse.jdt.core.IJavaProject, java.lang.String, org.eclipse.core.runtime.IProgressMonitor)
*/
public boolean visitVariable(
IClasspathEntry entry,
IJavaProject javaProject,
String variableName, IProgressMonitor monitor)
throws CoreException
{
return !variableName.equals(JavaRuntime.JRELIB_VARIABLE);
}
/**
* Return a boolean indicating whether the specified library
* classpath entry is exported either directly or via a
* classpath container.
*
* @param entry
* @return
*/
protected boolean isLibraryExported(IClasspathEntry entry)
{
return
entry.isExported() ||
((containerEntry != null) && containerEntry.isExported());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -