Example usage for org.eclipse.jdt.core IPackageFragmentRoot getKind

List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IPackageFragmentRoot getKind.

Prototype

int getKind() throws JavaModelException;

Source Link

Document

Returns this package fragment root's kind encoded as an integer.

Usage

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();
}