blob: 9fc632e0cda00f61e13792b72191a4cf3f096c4e [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2008 IBM Corporation 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
/**
*
*/
package org.eclipse.wst.jsdt.core;
import org.eclipse.core.runtime.IPath;
import org.eclipse.wst.jsdt.internal.core.ClassFile;
/**
* (mostly) static methods to figure out includepath entries and container initializers *
*
* Provisional API: This class/interface is part of an interim API that is still under development and expected to
* change significantly before reaching stability. It is being made available at this early stage to solicit feedback
* from pioneering adopters on the understanding that any code that uses this API will almost certainly be broken
* (repeatedly) as the API evolves.
*/
public class JSDScopeUtil {
public static JsGlobalScopeContainerInitializer getContainerInitializer(IPath classPathEntry) {
if(classPathEntry==null ) return null;
JsGlobalScopeContainerInitializer initializer= JavaScriptCore.getJsGlobalScopeContainerInitializer(classPathEntry.segment(0));
return initializer ;
}
public IIncludePathEntry[] getIncludepathEntries(IJsGlobalScopeContainer container) {
if(container!=null) return container.getIncludepathEntries();
return new IIncludePathEntry[0];
}
public IJsGlobalScopeContainer getLibraryContainer(IPath cpEntry, IJavaScriptProject javaProject) {
IJsGlobalScopeContainer container=null;
try {
container = JavaScriptCore.getJsGlobalScopeContainer(cpEntry, javaProject);
} catch (JavaScriptModelException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
return container;
}
public static JsGlobalScopeContainerInitializer findLibraryInitializer(IPath compUnitPath, IJavaScriptProject javaProject) {
IPackageFragmentRoot[] roots = new IPackageFragmentRoot[0];
try {
roots = javaProject.getAllPackageFragmentRoots();
} catch (JavaScriptModelException ex) {
// TODO Auto-generated catch block
ex.printStackTrace();
}
for (int i = 0;i<roots.length;i++) {
IPackageFragment frag = roots[i].getPackageFragment(""); //$NON-NLS-1$
try {
IClassFile classfile = frag.getClassFile(compUnitPath.toString());
if(classfile.exists()) {
return ((ClassFile)classfile).getContainerInitializer();
}
} catch (Exception ex) {
// Do nothing since CU may be invalid and thats what w're tryingto figure out.
// TODO Auto-generated catch block
// ex.printStackTrace();
}
}
return null;
}
}