List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind
int getKind() throws JavaModelException;
From source file:at.bestsolution.efxclipse.tooling.ui.wizards.AbstractNewJDTElementWizard.java
License:Open Source License
protected IPackageFragmentRoot getFragmentRoot(IJavaElement elem) { IPackageFragmentRoot initRoot = null; if (elem != null) { initRoot = (IPackageFragmentRoot) elem.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); try {/*from ww w. j ava2s . co m*/ if (initRoot == null || initRoot.getKind() != IPackageFragmentRoot.K_SOURCE) { IJavaProject jproject = elem.getJavaProject(); if (jproject != null) { initRoot = null; if (jproject.exists()) { IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { initRoot = roots[i]; break; } } } if (initRoot == null) { initRoot = jproject.getPackageFragmentRoot(jproject.getResource()); } } } } catch (JavaModelException e) { // TODO e.printStackTrace(); } } return initRoot; }
From source file:at.bestsolution.fxide.jdt.corext.javadoc.JavaDocLocations.java
License:Open Source License
public static URL getJavadocBaseLocation(IJavaElement element) throws JavaModelException { if (element.getElementType() == IJavaElement.JAVA_PROJECT) { return getProjectJavadocLocation((IJavaProject) element); }/* ww w .j a v a2 s . c o m*/ IPackageFragmentRoot root = JavaModelUtil.getPackageFragmentRoot(element); if (root == null) { return null; } if (root.getKind() == IPackageFragmentRoot.K_BINARY) { IClasspathEntry entry = root.getResolvedClasspathEntry(); URL javadocLocation = getLibraryJavadocLocation(entry); if (javadocLocation != null) { return getLibraryJavadocLocation(entry); } entry = root.getRawClasspathEntry(); switch (entry.getEntryKind()) { case IClasspathEntry.CPE_LIBRARY: case IClasspathEntry.CPE_VARIABLE: return getLibraryJavadocLocation(entry); default: return null; } } else { return getProjectJavadocLocation(root.getJavaProject()); } }
From source file:at.bestsolution.fxide.jdt.corext.util.JavaModelUtil.java
License:Open Source License
/** * Returns the classpath entry of the given package fragment root. This is the raw entry, except * if the root is a referenced library, in which case it's the resolved entry. * * @param root a package fragment root//from ww w .j a v a 2s. co m * @return the corresponding classpath entry * @throws JavaModelException if accessing the entry failed * @since 3.6 */ public static IClasspathEntry getClasspathEntry(IPackageFragmentRoot root) throws JavaModelException { IClasspathEntry rawEntry = root.getRawClasspathEntry(); int rawEntryKind = rawEntry.getEntryKind(); switch (rawEntryKind) { case IClasspathEntry.CPE_LIBRARY: case IClasspathEntry.CPE_VARIABLE: case IClasspathEntry.CPE_CONTAINER: // should not happen, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=305037 if (root.isArchive() && root.getKind() == IPackageFragmentRoot.K_BINARY) { IClasspathEntry resolvedEntry = root.getResolvedClasspathEntry(); if (resolvedEntry.getReferencingEntry() != null) return resolvedEntry; else return rawEntry; } } return rawEntry; }
From source file:at.bestsolution.fxide.jdt.text.javadoc.JavadocContentAccess2.java
License:Open Source License
/** * Returns the Javadoc for a package which could be present in package.html, package-info.java * or from an attached Javadoc.//w w w. j a v a2 s . c om * * @param packageFragment the package which is requesting for the document * @return the document content in HTML format or <code>null</code> if there is no associated * Javadoc * @throws CoreException if the Java element does not exists or an exception occurs while * accessing the file containing the package Javadoc * @since 3.9 */ public static String getHTMLContent(IPackageFragment packageFragment) throws CoreException { IPackageFragmentRoot root = (IPackageFragmentRoot) packageFragment .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); //1==> Handle the case when the documentation is present in package-info.java or package-info.class file ITypeRoot packageInfo; boolean isBinary = root.getKind() == IPackageFragmentRoot.K_BINARY; if (isBinary) { packageInfo = packageFragment.getClassFile(JavaModelUtil.PACKAGE_INFO_CLASS); } else { packageInfo = packageFragment.getCompilationUnit(JavaModelUtil.PACKAGE_INFO_JAVA); } if (packageInfo != null && packageInfo.exists()) { String cuSource = packageInfo.getSource(); //the source can be null for some of the class files if (cuSource != null) { Javadoc packageJavadocNode = getPackageJavadocNode(packageFragment, cuSource); if (packageJavadocNode != null) { IJavaElement element; if (isBinary) { element = ((IClassFile) packageInfo).getType(); } else { element = packageInfo.getParent(); // parent is the IPackageFragment } return new JavadocContentAccess2(element, packageJavadocNode, cuSource).toHTML(); } } } // 2==> Handle the case when the documentation is done in package.html file. The file can be either in normal source folder or coming from a jar file else { Object[] nonJavaResources = packageFragment.getNonJavaResources(); // 2.1 ==>If the package.html file is present in the source or directly in the binary jar for (Object nonJavaResource : nonJavaResources) { if (nonJavaResource instanceof IFile) { IFile iFile = (IFile) nonJavaResource; if (iFile.exists() && JavaModelUtil.PACKAGE_HTML.equals(iFile.getName())) { return getIFileContent(iFile); } } } // 2.2==>The file is present in a binary container if (isBinary) { for (Object nonJavaResource : nonJavaResources) { // The content is from an external binary class folder if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource; String encoding = getSourceAttachmentEncoding(root); if (JavaModelUtil.PACKAGE_HTML.equals(jarEntryResource.getName()) && jarEntryResource.isFile()) { return getHTMLContent(jarEntryResource, encoding); } } } //2.3 ==>The file is present in the source attachment path. String contents = getHTMLContentFromAttachedSource(root, packageFragment); if (contents != null) return contents; } } //3==> Handle the case when the documentation is coming from the attached Javadoc if ((root.isArchive() || root.isExternal())) { return packageFragment.getAttachedJavadoc(null); } return null; }
From source file:at.spardat.xma.gui.projectw.AbstractOpenXmaProjectContentProvider.java
License:Open Source License
public void renameJavaPackages(IRunnableContext context, IProject project, String oldPackageName, String newPackageName) {//from ww w . j ava2 s.co m IJavaProject javaProject = JavaCore.create(project); try { IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_SOURCE && root.getPackageFragment(oldPackageName).exists()) { IPackageFragment packageFragment = root.getPackageFragment(oldPackageName); renamePackage(context, packageFragment, newPackageName); } } } catch (Exception exception) { throw new WrappedException(exception); } }
From source file:byke.tests.workspaceutils.JavaModelUtility.java
License:Open Source License
public static List<ICompilationUnit> collectCompilationUnits(IJavaProject project) throws JavaModelException { List<ICompilationUnit> result = new ArrayList<ICompilationUnit>(); IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); for (int i = 0; i < roots.length; ++i) { IPackageFragmentRoot root = roots[i]; if (IPackageFragmentRoot.K_SOURCE == root.getKind()) { collectCompilationUnits(result, root); }//from ww w .j a v a 2s. c o m } return result; }
From source file:ca.uvic.chisel.javasketch.FilterSettings.java
License:Open Source License
public String[] getResolvedInclusionFilters() { if (isUsingProjectClassesOnly()) { if (inclusionFilters == null) { //search the java project for packages that should be included. LinkedList<String> result = new LinkedList<String>(); IJavaProject[] jps = referenceProjects; HashSet<IPackageFragmentRoot> roots = new HashSet<IPackageFragmentRoot>(); if (jps != null) { for (IJavaProject jp : jps) { try { roots.addAll(Arrays.asList(jp.getPackageFragmentRoots())); } catch (JavaModelException e) { }/* ww w. java 2s .c om*/ } } LinkedList<IJavaElement> elements = new LinkedList<IJavaElement>(); elements.addAll(roots); while (elements.size() > 0) { IJavaElement element = elements.removeFirst(); if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; try { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { for (IJavaElement child : ((IPackageFragmentRoot) element).getChildren()) { if (child instanceof IPackageFragment) { elements.add(child); } } } } catch (JavaModelException e) { } } else if (element instanceof IPackageFragment) { IPackageFragment fragment = (IPackageFragment) element; try { for (IJavaElement child : fragment.getChildren()) { if (child instanceof ICompilationUnit) { result.add(fragment.getElementName() + ".*"); break; } else if (child instanceof IPackageFragment) { elements.add(child); } } } catch (JavaModelException e) { } } } inclusionFilters = result.toArray(new String[result.size()]); return inclusionFilters; } } else if (getReferencedFilterSketch() != null) { IProgramSketch sketch = getReferencedFilterSketch(); if (sketch != this) { return sketch.getFilterSettings().getResolvedInclusionFilters(); } } return getInclusionFilters(); }
From source file:ccw.ClojureProject.java
License:Open Source License
public List<IJavaProject> dependencies() { List<IJavaProject> ret = new ArrayList<IJavaProject>(); try {//from w w w. j a v a 2 s . com for (IPackageFragmentRoot root : getJavaProject().getAllPackageFragmentRoots()) if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { // System.err.println("SOURCE: " + root + " " + // root.getClass()); if (root.getResource() instanceof IProject) { IProject p = (IProject) root.getResource(); if (!p.hasNature(JavaCore.NATURE_ID)) continue; ret.add(JavaCore.create(p)); continue; } } } catch (JavaModelException e) { CCWPlugin.logError(e); } catch (CoreException e) { CCWPlugin.logError(e); } return ret; }
From source file:ccw.ClojureProject.java
License:Open Source License
public static List<IFolder> sourceFolders(IJavaProject jp) { List<IFolder> ret = new ArrayList<IFolder>(); try {/* w w w .j av a 2 s . c o m*/ for (IPackageFragmentRoot root : jp.getAllPackageFragmentRoots()) if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { // System.err.println("SOURCE: " + root + " " + // root.getClass()); if (root.getResource() instanceof IFolder && root.getParent().getAdapter(IProject.class) == jp.getProject()) { ret.add((IFolder) root.getResource()); } } } catch (JavaModelException e) { CCWPlugin.logError(e); } return ret; }
From source file:cfgrecognition.loader.SootClassLoader.java
License:Open Source License
/** * The method traverses all of the project types in depth-first order * including inner and anonymous types and loads them in Soot. * //www . j a v a 2 s . com * * @param monitor * The progress monitor. * @throws Exception * Propagated from JDT APIs. */ public void process() throws Exception { IJavaProject project = Activator.getIJavaProject(); IPackageFragmentRoot[] packageFragmentRoots = project.getPackageFragmentRoots(); // subMonitor.beginTask("Loading " + project.getElementName() + " ...", 2); // // SubProgressMonitor monitor = new SubProgressMonitor(subMonitor, 1); // monitor.beginTask("Loading packages ... ", // packageFragmentRoots.length + 1); for (IPackageFragmentRoot pkgFragRoot : packageFragmentRoots) { if (pkgFragRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { IJavaElement[] pkgFrags = (IJavaElement[]) pkgFragRoot.getChildren(); for (IJavaElement pkgFrag : pkgFrags) { // if (monitor.isCanceled()) // return; // // monitor.subTask("Loading classes in " // + pkgFrag.getElementName()); if (pkgFrag.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { IPackageFragment pkgFragment = (IPackageFragment) pkgFrag; IJavaElement[] children = pkgFragment.getChildren(); for (IJavaElement anElement : children) { // if (monitor.isCanceled()) // return; // Make sure its a java file if (anElement.getElementType() == IJavaElement.COMPILATION_UNIT) { this.dfsDomTree(anElement); // this.dfsDomTree(anElement, monitor); } } } } } // monitor.worked(1); } // Load the necessary classes after all of the classes have been loaded. Scene.v().loadNecessaryClasses(); // monitor.done(); // Create an instance of Interpreter before we process anything further // Interpreter.instance(); // monitor = new SubProgressMonitor(subMonitor, 1); // monitor.beginTask("Configuring entry points ... ", this // .getAllSootClasses().size()); // for (SootClass c : this.getAllSootClasses()) { // // ExtensionManager manager = ExtensionManager.instance(); // // Configure entry methods for extension plugin // for (SootMethod method : c.getMethods()) { // if (monitor.isCanceled()) // return; // // TODO: later down the road, this specifies the entry points // // (characteristics for different algorithms) // // manager.checkEntryMethod(method, monitor); // monitor.worked(1); // } // } // monitor.done(); }