| /******************************************************************************* |
| * 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; |
| } |
| } |