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

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

Introduction

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

Prototype

IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;

Source Link

Document

Returns all of the package fragment roots contained in this project, identified on this project's resolved classpath.

Usage

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

License:Open Source License

public static File[] getSourcesDirs(IJavaProject javaProject) throws JavaModelException {
    Collection<File> result = new ArrayList<File>();
    IPackageFragmentRoot[] packageFragmentRoot = javaProject.getPackageFragmentRoots();
    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  w  ww. j ava  2 s.c  om
    }
    return result.toArray(new File[result.size()]);
}

From source file:at.bestsolution.efxclipse.tooling.fxgraph.ui.contentassist.FXGraphProposalProvider.java

License:Open Source License

@Override
public void completeLocationValueProperty_Value(EObject model, Assignment assignment,
        final ContentAssistContext context, final ICompletionProposalAcceptor acceptor) {
    IJavaProject javaProject = projectProvider.getJavaProject(model.eResource().getResourceSet());

    try {//from  w  ww  . ja v a  2  s.c o  m
        for (IPackageFragmentRoot r : javaProject.getPackageFragmentRoots()) {
            if (r.getCorrespondingResource() != null) {
                final int count = r.getCorrespondingResource().getProjectRelativePath().segmentCount();
                r.getCorrespondingResource().accept(new IResourceVisitor() {

                    @Override
                    public boolean visit(IResource resource) throws CoreException {
                        if (resource.getType() == IResource.FOLDER || resource.getType() == IResource.PROJECT) {
                            return true;
                        } else if (resource.getType() == IResource.FILE && !resource.isLinked()) {
                            String extension = resource.getProjectRelativePath().getFileExtension();
                            if (extension.equals("png") || extension.equals("jpg") || extension.equals("gif")) {
                                IPath p = resource.getProjectRelativePath().removeFirstSegments(count);
                                String prefix = "\"/"
                                        + (p.segmentCount() > 1 ? p.removeLastSegments(1).toString()
                                                : p.toString())
                                        + "/" + context.getPrefix();
                                ICompletionProposal proposal = createCompletionProposal(
                                        "\"/" + p.toString() + "\"", new StyledString("/" + p.toString()), null,
                                        getPriorityHelper().getDefaultPriority(), prefix, context);
                                acceptor.accept(proposal);
                            }
                        }

                        return false;
                    }
                });
            }
        }
    } catch (CoreException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
}

From source file:at.bestsolution.efxclipse.tooling.ui.util.RelativeFileLocator.java

License:Open Source License

public static File locateFile(URI uri, String filePath) {
    IProject p = ResourcesPlugin.getWorkspace().getRoot().getProject(uri.segment(1));
    IJavaProject jp = JavaCore.create(p);

    // Absolute to project
    if (filePath.startsWith("/")) {
        filePath = filePath.substring(1); // Remove the leading /
        IFile f = p.getFile(filePath);// ww w.  ja v  a 2s .  c  o m
        if (f.exists()) {
            return f.getLocation().toFile().getAbsoluteFile();
        } else if (jp != null) {
            try {
                for (IPackageFragmentRoot r : jp.getPackageFragmentRoots()) {
                    if (r.isArchive()) {
                        //TODO We should allow to load styles from the referenced jars
                    } else if (r.getResource() instanceof IFolder) {
                        IFolder folder = (IFolder) r.getResource();
                        if (folder.exists()) {
                            f = folder.getFile(filePath);
                            if (f.exists()) {
                                return f.getLocation().toFile().getAbsoluteFile();
                            }
                        }
                    }
                }
            } catch (JavaModelException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    } else {
        URI fileUri = null;

        try {
            fileUri = URI.createURI(filePath);
        } catch (Exception e) {
            // TODO: handle exception
        }

        if (fileUri != null && fileUri.isPlatformResource()) {
            Path path = new Path(fileUri.toPlatformString(true));
            IWorkspaceRoot root = jp.getProject().getWorkspace().getRoot();
            IFile file = root.getFile(path);
            if (file.exists()) {
                return file.getLocation().toFile().getAbsoluteFile();
            }
        } else {
            IPath path = null;
            for (int i = 2; i < uri.segmentCount() - 1; i++) {
                if (path == null) {
                    path = new Path(uri.segment(i));
                } else {
                    path = path.append(uri.segment(i));
                }
            }

            if (path != null) {
                IFile f = p.getFile(path.append(filePath));
                if (f.exists()) {
                    return f.getLocation().toFile().getAbsoluteFile();
                }
            }
        }
    }

    return null;
}

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 {/*w w w.jav a  2  s . c  o 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.spardat.xma.gui.projectw.AbstractOpenXmaProjectContentProvider.java

License:Open Source License

public void renameJavaPackages(IRunnableContext context, IProject project, String oldPackageName,
        String newPackageName) {/*  www. j a v  a2  s.  c o  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: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) {
                    }//  w w  w .  j  ava  2 s  .  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: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.
 * //  w  w w.  j  a v  a 2s  .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();
}

From source file:ch.qos.logback.beagle.util.EditorUtil.java

License:Open Source License

private static IType findType(IJavaProject jproject, String fullyQualifiedName) throws JavaModelException {
    IType type = jproject.findType(fullyQualifiedName);
    if (type != null)
        return type;
    IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots();
    for (int i = 0; i < roots.length; i++) {
        IPackageFragmentRoot root = roots[i];
        type = findType(root, fullyQualifiedName);
        if (type != null && type.exists())
            return type;
    }/*from   w w w .  jav  a2 s . c  o  m*/
    return null;
}

From source file:co.turnus.widgets.util.WidgetsUtils.java

License:Open Source License

/**
 * Returns the list of source folders of the given project as a list of
 * absolute workspace paths./* ww  w  .j  a v a  2 s  . c  o  m*/
 * 
 * @param project
 *            a project
 * @return a list of absolute workspace paths
 */
public static List<IFolder> getSourceFolders(IProject project) {
    List<IFolder> srcFolders = new ArrayList<IFolder>();

    IJavaProject javaProject = JavaCore.create(project);
    if (!javaProject.exists()) {
        return srcFolders;
    }

    // iterate over package roots
    try {
        for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
            IResource resource = root.getCorrespondingResource();
            if (resource != null && resource.getType() == IResource.FOLDER) {
                srcFolders.add((IFolder) resource);
            }
        }
    } catch (CoreException e) {
        e.printStackTrace();
    }

    return srcFolders;
}

From source file:com.amashchenko.eclipse.strutsclipse.ProjectUtil.java

License:Apache License

public static List<JarEntryStorage> findJarEntryStrutsResources(final IDocument document) {
    List<JarEntryStorage> results = new ArrayList<JarEntryStorage>();
    try {//from ww w.  j  a  v  a2  s.  co m
        IJavaProject javaProject = getCurrentJavaProject(document);

        if (javaProject != null && javaProject.exists()) {
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            for (IPackageFragmentRoot root : roots) {
                if (root.isArchive()) {
                    Object[] nonJavaResources = root.getNonJavaResources();
                    for (Object nonJavaRes : nonJavaResources) {
                        if (nonJavaRes instanceof IJarEntryResource) {
                            IJarEntryResource jarEntry = (IJarEntryResource) nonJavaRes;
                            if (jarEntry.isFile() && (StrutsXmlConstants.STRUTS_DEFAULT_FILE_NAME
                                    .equals(jarEntry.getName())
                                    || StrutsXmlConstants.STRUTS_PLUGIN_FILE_NAME.equals(jarEntry.getName()))) {
                                results.add(new JarEntryStorage(root.getPath(), jarEntry));
                            }
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }
    return results;
}