blob: 6271bff7316b93a2acbe80b23421530c48b6a18a [file] [log] [blame]
package org.eclipse.jst.j2ee.internal.common.classpath;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
import org.eclipse.jdt.core.IClasspathContainer;
import org.eclipse.jdt.core.IClasspathEntry;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.JavaCore;
import org.eclipse.jdt.core.JavaModelException;
import org.eclipse.jst.common.jdt.internal.classpath.FlexibleProjectContainer;
import org.eclipse.jst.common.jdt.internal.javalite.IJavaProjectLite;
import org.eclipse.jst.common.jdt.internal.javalite.JavaCoreLite;
import org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin;
public class J2EEComponentClasspathContainerUtils {
public static boolean getDefaultUseEARLibraries() {
return J2EEPlugin.getDefault().getJ2EEPreferences().getUseEARLibraries();
}
public static boolean getDefaultUseEARLibrariesJDTExport() {
return J2EEPlugin.getDefault().getJ2EEPreferences().getUseEARLibrariesJDTExport();
}
public static boolean getDefaultUseWebAppLibraries() {
return J2EEPlugin.getDefault().getJ2EEPreferences().getUseWebLibaries();
}
public static IClasspathContainer getInstalledContainer(IProject project, IPath containerPath) {
IJavaProject jproj = JavaCore.create(project);
IClasspathEntry entry = getInstalledContainerEntry(jproj, containerPath);
IClasspathContainer container = null;
if (entry != null) {
try {
container = JavaCore.getClasspathContainer(containerPath, jproj);
} catch (JavaModelException e) {
J2EEPlugin.logError(e);
}
}
return container;
}
public static J2EEComponentClasspathContainer getInstalledEARLibrariesContainer(IProject project) {
IClasspathContainer container = getInstalledContainer(project, J2EEComponentClasspathContainer.CONTAINER_PATH);
J2EEComponentClasspathContainer earLibrariesContainer = null;
if (null != container && container instanceof J2EEComponentClasspathContainer) {
earLibrariesContainer = (J2EEComponentClasspathContainer) container;
}
return earLibrariesContainer;
}
public static FlexibleProjectContainer getInstalledWebAppLibrariesContainer(IProject project){
IClasspathContainer container = getInstalledContainer(project, J2EEComponentClasspathUpdater.WEB_APP_LIBS_PATH);
FlexibleProjectContainer webAppLibrariesContainer = null;
if (null != container && container instanceof FlexibleProjectContainer) {
webAppLibrariesContainer = (FlexibleProjectContainer) container;
}
return webAppLibrariesContainer;
}
public static IClasspathEntry getInstalledContainerEntry(IJavaProject jproj, IPath classpathContainerPath) {
if(jproj.exists()){
IJavaProjectLite javaProjectLite = JavaCoreLite.create(jproj);
IClasspathEntry[] cpes = javaProjectLite.readRawClasspath();
for (int j = 0; j < cpes.length; j++) {
final IClasspathEntry cpe = cpes[j];
if (cpe.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
if (cpe.getPath().equals(classpathContainerPath)) {
return cpe; // entry found
}
}
}
}
// entry not found
return null;
}
}