List of usage examples for org.eclipse.jdt.core IJavaProject findPackageFragmentRoots
IPackageFragmentRoot[] findPackageFragmentRoots(IClasspathEntry entry);
From source file:edu.brown.cs.bubbles.bedrock.BedrockProject.java
License:Open Source License
private void addClasses(IJavaProject jp, IvyXmlWriter xw) { try {/*w ww .j a v a 2s. co m*/ IClasspathEntry[] ents = jp.getResolvedClasspath(true); for (int k = 0; k < ents.length; ++k) { if (ents[k].getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPackageFragmentRoot[] rts = jp.findPackageFragmentRoots(ents[k]); for (int l = 0; l < rts.length; ++l) { IJavaElement[] elts = rts[l].getChildren(); for (int m = 0; m < elts.length; ++m) { if (elts[m] instanceof IPackageFragment) { IPackageFragment frag = (IPackageFragment) elts[m]; xw.textElement("PACKAGE", frag.getElementName()); for (ICompilationUnit icu : frag.getCompilationUnits()) { for (IType typ : icu.getTypes()) { outputType(typ, jp, xw); } } } } } } } } catch (JavaModelException e) { BedrockPlugin.logE("Problem getting class list: " + e); } }
From source file:fr.obeo.ariadne.ide.connector.java.internal.explorer.JavaExplorer.java
License:Open Source License
/** * Explores the given classpath entry of the given Java project in order to populate the Ariadne classpath * entry.//from w w w .ja va 2 s . c o m * * @param iJavaProject * The Java project analyzed * @param iClasspathEntry * The classpath entry of the project currently analyzed * @param classpathEntry * The Ariadne classpath entry * @param monitor * The progress monitor */ private void exploreClasspathEntry(IJavaProject iJavaProject, IClasspathEntry iClasspathEntry, ClasspathEntry classpathEntry, IProgressMonitor monitor) { try { IPackageFragmentRoot[] packageFragmentRoots = iJavaProject.findPackageFragmentRoots(iClasspathEntry); for (IPackageFragmentRoot iPackageFragmentRoot : packageFragmentRoots) { IJavaElement[] iJavaElements = iPackageFragmentRoot.getChildren(); for (IJavaElement iJavaElement : iJavaElements) { if (iJavaElement instanceof IPackageFragment) { IPackageFragment iPackageFragment = (IPackageFragment) iJavaElement; this.explorePackage(classpathEntry, iPackageFragment, monitor); } } } } catch (JavaModelException e) { e.printStackTrace(); } }
From source file:in.software.analytics.parichayana.core.internal.builder.ParichayanaBuilder.java
License:Open Source License
private List<ICompilationUnit> getCompilationUnits() throws JavaModelException { List<ICompilationUnit> compilationUnits = new ArrayList<ICompilationUnit>(); IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] entries = javaProject.getRawClasspath(); for (IClasspathEntry entry : entries) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry); for (IPackageFragmentRoot root : roots) { if (root.isArchive()) { continue; }/* www . j ava2 s . c om*/ IJavaElement[] children = root.getChildren(); for (IJavaElement child : children) { if (child instanceof IPackageFragment) { IPackageFragment packageFragment = (IPackageFragment) child; ICompilationUnit[] cus = packageFragment.getCompilationUnits(); for (ICompilationUnit cu : cus) { cleanupMarkers(cu.getUnderlyingResource()); compilationUnits.add(cu); } } } } } } return compilationUnits; }
From source file:info.evanchik.eclipse.felix.FelixLaunchConfiguration.java
License:Open Source License
/** * Gets the path to the specified bundle in the following manner:<br> * <br>//from ww w . ja v a 2s. co m * <ol> * <li>If the bundle is found in the Plug-in Registry and is not a workspace * resource, return the path to the bundle</li> * <li>If the bundle is in the Plug-in Registry but is a workspace resource, * return the path to the path to the output location that contains the * package specified ({@code project/output folder})</li> * <li>If the bundle is not found in the Plug-in Registry then look for it * in the OSGi platform</li> * </ol> * * @param bundleName * the symbolic name of the bundle * @param packageName * the name of the package used to locate the output folder * @return a fully qualified path to the requested bundle or null if it does * not exist * @throws CoreException */ private static String getBundlePath(String bundleName, String packageName) throws CoreException { final IPluginModelBase model = PluginRegistry.findModel(bundleName); if (model != null) { final IResource resource = model.getUnderlyingResource(); if (!isWorkspaceModel(model)) { return model.getInstallLocation(); } final IProject project = resource.getProject(); if (project.hasNature(JavaCore.NATURE_ID)) { final IJavaProject jProject = JavaCore.create(project); final IClasspathEntry[] entries = jProject.getRawClasspath(); for (int i = 0; i < entries.length; i++) { final int kind = entries[i].getEntryKind(); if (kind == IClasspathEntry.CPE_SOURCE || kind == IClasspathEntry.CPE_LIBRARY) { final IPackageFragmentRoot[] roots = jProject.findPackageFragmentRoots(entries[i]); for (int j = 0; j < roots.length; j++) { if (roots[j].getPackageFragment(packageName).exists()) { // if source folder, find the output folder if (kind == IClasspathEntry.CPE_SOURCE) { IPath path = entries[i].getOutputLocation(); if (path == null) { path = jProject.getOutputLocation(); } path = path.removeFirstSegments(1); return project.getLocation().append(path).toOSString(); } // else if is a library jar, then get the // location of the jar itself final IResource jar = roots[j].getResource(); if (jar != null) { return jar.getLocation().toOSString(); } } } } } } } final Bundle bundle = Platform.getBundle(bundleName); if (bundle != null) { try { URL url = FileLocator.resolve(bundle.getEntry("/")); //$NON-NLS-1$ url = FileLocator.toFileURL(url); String path = url.getFile(); if (path.startsWith("file:")) { //$NON-NLS-1$ path = path.substring(5); } path = new File(path).getAbsolutePath(); if (path.endsWith("!")) { //$NON-NLS-1$ path = path.substring(0, path.length() - 1); } return path; } catch (IOException e) { } } return null; }
From source file:org.apache.felix.sigil.eclipse.model.util.JavaHelper.java
License:Apache License
public static Collection<ICompilationUnit> findCompilationUnits(ISigilProjectModel project) throws JavaModelException { LinkedList<ICompilationUnit> ret = new LinkedList<ICompilationUnit>(); IJavaProject java = project.getJavaModel(); for (IClasspathEntry cp : findClasspathEntries(project.getBundle())) { IPackageFragmentRoot[] roots = java.findPackageFragmentRoots(cp); for (IPackageFragmentRoot rt : roots) { for (IJavaElement j : rt.getChildren()) { IPackageFragment p = (IPackageFragment) j; ICompilationUnit[] units = p.getCompilationUnits(); for (ICompilationUnit u : units) { ret.add(u);// w ww . ja v a2 s .c o m } } } } return ret; }
From source file:org.bonitasoft.studio.businessobject.core.repository.BusinessObjectModelRepositoryStore.java
License:Open Source License
protected IRegion regionWithBDM(final IJavaProject javaProject) throws JavaModelException { final IRegion newRegion = JavaCore.newRegion(); final IClasspathEntry repositoryDependenciesClasspathEntry = find(asIterable(javaProject.getRawClasspath()), repositoryDependenciesEntry(), null); final IPackageFragmentRoot[] fragmentRoots = javaProject .findPackageFragmentRoots(repositoryDependenciesClasspathEntry); final IPackageFragmentRoot packageFragmentRoot = find(asIterable(fragmentRoots), withElementName(BDM_CLIENT_POJO_JAR_NAME), null); if (packageFragmentRoot != null) { newRegion.add(packageFragmentRoot); }/*from w w w . j av a2 s . c o m*/ return newRegion; }
From source file:org.cloudfoundry.ide.eclipse.internal.server.ui.standalone.JavaUIHelper.java
License:Open Source License
public IPackageFragment getDefaultPackageFragment() { IJavaProject javaProject = getJavaProject(); if (getJavaProject() == null) { return null; }//from ww w . ja v a 2 s .com IPackageFragmentRoot[] roots = null; try { IClasspathEntry[] entries = javaProject.getRawClasspath(); for (IClasspathEntry entry : entries) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { roots = javaProject.findPackageFragmentRoots(entry); if (roots != null) { break; } } } } catch (JavaModelException e) { CloudFoundryPlugin.logError(e); } if (roots != null) { IPackageFragment fragment = null; for (IPackageFragmentRoot root : roots) { try { IJavaElement[] members = root.getChildren(); if (members != null) { for (IJavaElement element : members) { if (element instanceof IPackageFragment) { IPackageFragment frag = (IPackageFragment) element; if (frag.isDefaultPackage()) { fragment = frag; break; } } } } if (fragment != null) { break; } } catch (JavaModelException e) { CloudFoundryPlugin.logError(e); } } return fragment; } return null; }
From source file:org.cloudfoundry.ide.eclipse.server.standalone.internal.startcommand.JavaTypeUIAdapter.java
License:Open Source License
public IPackageFragment getDefaultPackageFragment(IJavaProject javaProject) { if (javaProject == null) { return null; }/* w w w . j av a2 s .c o m*/ List<IPackageFragmentRoot> packFragRoots = new ArrayList<IPackageFragmentRoot>(); try { IClasspathEntry[] entries = javaProject.getRawClasspath(); for (IClasspathEntry entry : entries) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry); if (roots != null) { for (IPackageFragmentRoot rt : roots) { if (!packFragRoots.contains(rt)) { packFragRoots.add(rt); } } } } } } catch (JavaModelException e) { CloudFoundryPlugin.log(e); } IPackageFragment fragment = null; for (IPackageFragmentRoot root : packFragRoots) { try { IJavaElement[] members = root.getChildren(); if (members != null) { for (IJavaElement element : members) { if (element instanceof IPackageFragment) { IPackageFragment frag = (IPackageFragment) element; if (frag.isDefaultPackage()) { fragment = frag; break; } } } } if (fragment != null) { break; } } catch (JavaModelException e) { CloudFoundryPlugin.log(e); } } return fragment; }
From source file:org.eclim.plugin.jdt.command.launching.JavaCommand.java
License:Open Source License
private String findMainClass(IJavaProject javaProject) throws Exception { ArrayList<IJavaElement> srcs = new ArrayList<IJavaElement>(); for (IClasspathEntry entry : javaProject.getResolvedClasspath(true)) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { for (IPackageFragmentRoot root : javaProject.findPackageFragmentRoots(entry)) { srcs.add(root);/*from w w w . ja v a2 s . co m*/ } } } final ArrayList<IMethod> methods = new ArrayList<IMethod>(); int context = IJavaSearchConstants.DECLARATIONS; int type = IJavaSearchConstants.METHOD; int matchType = SearchPattern.R_EXACT_MATCH | SearchPattern.R_CASE_SENSITIVE; IJavaSearchScope scope = SearchEngine.createJavaSearchScope(srcs.toArray(new IJavaElement[srcs.size()])); SearchPattern pattern = SearchPattern.createPattern("main(String[])", type, context, matchType); SearchRequestor requestor = new SearchRequestor() { public void acceptSearchMatch(SearchMatch match) { if (match.getAccuracy() != SearchMatch.A_ACCURATE) { return; } try { IMethod method = (IMethod) match.getElement(); String[] params = method.getParameterTypes(); if (params.length != 1) { return; } if (!Signature.SIG_VOID.equals(method.getReturnType())) { return; } int flags = method.getFlags(); if (!Flags.isPublic(flags) || !Flags.isStatic(flags)) { return; } methods.add(method); } catch (JavaModelException e) { // ignore } } }; SearchEngine engine = new SearchEngine(); SearchParticipant[] participants = new SearchParticipant[] { SearchEngine.getDefaultSearchParticipant() }; engine.search(pattern, participants, scope, requestor, null); // if we found only 1 result, we can use it. if (methods.size() == 1) { IMethod method = methods.get(0); ICompilationUnit cu = method.getCompilationUnit(); IPackageDeclaration[] packages = cu.getPackageDeclarations(); if (packages != null && packages.length > 0) { return packages[0].getElementName() + "." + cu.getElementName(); } return cu.getElementName(); } return null; }
From source file:org.eclipse.ajdt.internal.utils.AJDTUtils.java
License:Open Source License
private static void excludeAJfiles(IProject project) { IJavaProject jp = JavaCore.create(project); try {// ww w.j av a2s. c om boolean changed = false; IClasspathEntry[] cpEntry = jp.getRawClasspath(); for (int i = 0; i < cpEntry.length; i++) { IClasspathEntry entry = cpEntry[i]; if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { List<IPath> excludeList = new ArrayList<IPath>(); IPackageFragmentRoot[] roots = jp.findPackageFragmentRoots(entry); for (int j = 0; j < roots.length; j++) { IJavaElement[] rootFragments; try { rootFragments = roots[j].getChildren(); for (int k = 0; k < rootFragments.length; k++) { if (rootFragments[k] instanceof IPackageFragment) { IPackageFragment pack = (IPackageFragment) rootFragments[k]; ICompilationUnit[] files = pack.getCompilationUnits(); for (int l = 0; l < files.length; l++) { IResource resource = files[l].getResource(); if (resource.getFileExtension().equals("aj")) { //$NON-NLS-1$ IPath resPath = resource.getFullPath(); int seg = resPath.matchingFirstSegments(roots[j].getPath()); excludeList.add(resPath.removeFirstSegments(seg)); } } } } } catch (JavaModelException e) { } } if (excludeList.size() > 0) { IPath[] exc = new IPath[excludeList.size()]; excludeList.toArray(exc); IClasspathEntry classpathEntry = JavaCore.newSourceEntry(entry.getPath(), exc); cpEntry[i] = classpathEntry; changed = true; } } } if (changed) { jp.setRawClasspath(cpEntry, null); } } catch (JavaModelException e) { } }