Example usage for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots

List of usage examples for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaProject getAllPackageFragmentRoots.

Prototype

IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the existing package fragment roots that exist on the classpath, in the order they are defined by the classpath.

Usage

From source file:ar.com.fluxit.jqa.JQAEclipseRunner.java

License:Open Source License

private Collection<File> getClassPath(IJavaProject javaProject) throws JavaModelException {
    Collection<File> result = new ArrayList<File>();
    for (IPackageFragmentRoot classpathEntry : javaProject.getAllPackageFragmentRoots()) {
        if (classpathEntry.isExternal()) {
            result.add(classpathEntry.getPath().toFile());
        } else {//from   ww w. java2  s . com
            result.add(Utils.getAbsolutePath(((IJavaProject) classpathEntry.getParent()).getOutputLocation()));
        }

    }
    return result;
}

From source file:ar.com.fluxit.jqa.utils.Utils.java

License:Open Source License

public static File[] getSourcesDirs(IJavaProject javaProject) throws JavaModelException {
    Collection<File> result = new ArrayList<File>();
    IPackageFragmentRoot[] packageFragmentRoot = javaProject.getAllPackageFragmentRoots();
    for (int i = 0; i < packageFragmentRoot.length; i++) {
        if (packageFragmentRoot[i].getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                && !packageFragmentRoot[i].isArchive()) {
            result.add(getAbsolutePath(packageFragmentRoot[i].getPath()));
        }//from   ww  w .j a v  a  2s. com
    }
    return result.toArray(new File[result.size()]);
}

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. jav a 2 s .co m
    }

    return result;
}

From source file:ca.mcgill.sable.soot.attributes.SootAttributeJavaSelectAction.java

License:Open Source License

public void findClass(String className) {
    setLinkToEditor(getEditor());//w ww .j  a  v  a 2  s .com
    String resource = removeExt(getResource(getEditor()).getName());

    String ext = getResource(getEditor()).getFileExtension();

    IProject proj = getResource(getEditor()).getProject();
    String slashedClassName = className.replaceAll("\\.", System.getProperty("file.separator"));
    String classNameToFind = slashedClassName + "." + ext;
    IJavaProject jProj = JavaCore.create(proj);
    try {

        IPackageFragmentRoot[] roots = jProj.getAllPackageFragmentRoots();
        for (int i = 0; i < roots.length; i++) {
            if (!(roots[i].getResource() instanceof IContainer))
                continue;
            IResource fileToFind = ((IContainer) roots[i].getResource()).findMember(classNameToFind);
            if (fileToFind == null)
                continue;

            if (!fileToFind.equals(resource)) {
                try {
                    setLinkToEditor((AbstractTextEditor) SootPlugin.getDefault().getWorkbench()
                            .getActiveWorkbenchWindow().getActivePage()
                            .openEditor(new FileEditorInput((IFile) fileToFind), fileToFind.getName()));
                } catch (PartInitException e) {
                }
            }
        }
    } catch (JavaModelException e) {
        setLinkToEditor(getEditor());
    }

}

From source file:ca.mcgill.sable.soot.callgraph.CallGraphGenerator.java

License:Open Source License

public void showInCode(CallGraphNode node) {
    SootMethod meth = (SootMethod) node.getData();
    String sootClassName = meth.getDeclaringClass().getName();
    sootClassName = sootClassName.replaceAll("\\.", System.getProperty("file.separator"));
    sootClassName = sootClassName + ".java";
    String sootMethName = meth.getName();

    IProject[] progs = SootPlugin.getWorkspace().getRoot().getProjects();
    IResource fileToOpen = null;/*from   w w w.j  a  v  a  2 s  .c om*/
    for (int i = 0; i < progs.length; i++) {
        IProject project = progs[i];

        IJavaProject jProj = JavaCore.create(project);
        try {

            IPackageFragmentRoot[] roots = jProj.getAllPackageFragmentRoots();
            for (int j = 0; j < roots.length; j++) {
                if (!(roots[j].getResource() instanceof IContainer))
                    continue;
                fileToOpen = ((IContainer) roots[j].getResource()).findMember(sootClassName);
                if (fileToOpen == null)
                    continue;
                else
                    break;
            }
        } catch (Exception e) {
        }

        if (fileToOpen != null)
            break;
    }

    IWorkbench workbench = SootPlugin.getDefault().getWorkbench();
    IWorkbenchWindow window = workbench.getActiveWorkbenchWindow();
    IWorkbenchPage page = window.getActivePage();
    ;

    try {
        IEditorPart part = page.openEditor(new FileEditorInput((IFile) fileToOpen),
                org.eclipse.jdt.ui.JavaUI.ID_CU_EDITOR);
        SourceLnPosTag methTag = (SourceLnPosTag) meth.getTag("SourceLnPosTag");
        if (methTag != null) {

            int selOffset = ((AbstractTextEditor) part).getDocumentProvider().getDocument(part.getEditorInput())
                    .getLineOffset(methTag.startLn() - 1);

            ((AbstractTextEditor) SootPlugin.getDefault().getWorkbench().getActiveWorkbenchWindow()
                    .getActivePage().getActiveEditor()).selectAndReveal(selOffset, 0);
        }

    } catch (PartInitException e3) {
        e3.printStackTrace();
    }

    catch (Exception e2) {
        e2.printStackTrace();
    }
}

From source file:ccw.ClojureCore.java

License:Open Source License

private static boolean openInEditor(final String searchedNS, final String initialSearchedFileName,
        final int line, final String projectName, final boolean onlyExportedEntries) throws PartInitException {

    if (initialSearchedFileName == null) {
        return false;
    }// w ww  . j  a  va  2 s.c om

    final String searchedFileName = getFileName(initialSearchedFileName);

    final IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName);

    final IJavaProject javaProject = JavaCore.create(project);

    try {
        System.out.println("search file name : " + searchedFileName);
        System.out.println("searched ns : " + searchedNS);

        final String searchedPackage = namespaceToPackage(searchedNS);
        System.out.println("searched package: " + searchedPackage);

        for (IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {

            final IEditorInput editorInput = findEditorInput(packageFragmentRoot, searchedPackage,
                    searchedFileName);

            if (editorInput != null) {
                IEditorPart editor = IDE.openEditor(CCWPlugin.getActivePage(), editorInput, ClojureEditor.ID);
                gotoEditorLine(editor, line);
                return true;
            } else {
                continue;
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return false;
}

From source file:ccw.ClojureCore.java

License:Open Source License

/**
 * Get the file's namespace name if the file is a lib.
 * <p>/*from w w  w. jav a 2 s  .com*/
 * Checks:
 * <ul>
 *   <li>if the file is in the classpath</li>
 *   <li>if the file ends with .clj</li>
 *   <li>if the file contains a ns call(*)</li>
 * </ul>
 * If check is ko, returns nil, the file does not correspond to a 'lib'
 * <br/>
 * If check is ok, deduce the 'lib' name from the file path, e.g. a file
 * path such as <code>/projectName/src/foo/bar_baz/core.clj</code> will 
 * return "foo.bar-baz.core".
 * </p>
 * <p>
 * (*): based on a simplistic regex based heuristic for maximum speed
 * </p>
 * @param file
 * @return null if not a lib, String with lib namespace name if a lib
 */
public static String findMaybeLibNamespace(IFile file) {
    try {
        IJavaProject jProject = JavaCore.create(file.getProject());
        IPackageFragmentRoot[] froots = jProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot froot : froots) {
            if (froot.getPath().isPrefixOf(file.getFullPath())) {
                String ret = findMaybeLibNamespace(file, froot.getPath());
                if (ret != null) {
                    return ret;
                } else {
                    continue;
                }
            }
        }
    } catch (JavaModelException e) {
        CCWPlugin.logError("unable to determine the fragment root of the file " + file, e);
    }
    return null;
}

From source file:ccw.ClojureCore.java

License:Open Source License

/**
 * @return starting with a leading slash "/", the root classpath relative
 *         path of this file//from  w  w w . j a  v  a2  s.  c o  m
 */
public static String getAsRootClasspathRelativePath(IFile file) {
    try {
        IJavaProject jProject = JavaCore.create(file.getProject());
        IPackageFragmentRoot[] froots = jProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot froot : froots) {
            if (froot.getPath().isPrefixOf(file.getFullPath())) {
                String ret = "/" + file.getFullPath().makeRelativeTo(froot.getPath()).toString();
                return ret;
            }
        }
    } catch (JavaModelException e) {
        CCWPlugin.logError("unable to determine the fragment root of the file " + file, e);
    }
    return null;
}

From source file:ccw.ClojureProject.java

License:Open Source License

public static List<IFolder> sourceFolders(IJavaProject jp) {
    List<IFolder> ret = new ArrayList<IFolder>();
    try {//from w w  w.ja va 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:ccw.launching.ClojureElementViewerFilter.java

License:Open Source License

@Override
public boolean select(Viewer viewer, Object parentElement, Object element) {
    IResource resource = (IResource) element;
    IJavaProject javaProject = JavaCore.create(project);

    if (javaProject == null) {
        return true;
    }/*from   www  .  j av  a 2  s.  com*/

    if (contains(project.getFolder("classes"), resource)) {
        return false;
    }

    IPackageFragmentRoot[] froots;
    try {
        froots = javaProject.getAllPackageFragmentRoots();
    } catch (JavaModelException e) {
        return true;
    }

    for (IPackageFragmentRoot froot : froots) {
        IResource frootResource = froot.getResource();
        if (frootResource == null) {
            continue; // Continue to test following fragment roots
        } else if (contains(resource, froot.getResource())) {
            return true;
        } else if (contains(froot.getResource(), resource)) {
            if (resource.getType() == IResource.FILE) {
                return "clj".equals(((IFile) resource).getFileExtension());
            } else {
                return true;
            }
        } else {
            continue; // Continue to test following fragment roots
        }
    }
    return false;

}