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:org.eclipse.e4.xwt.tools.ui.designer.wizards.ExternalizeStringsWizard.java

License:Open Source License

private void getDefaultAccessorContents() {
    IFile inputFile = designer.getFile();

    IContainer container = inputFile.getParent();
    IJavaElement javaElement = JavaCore.create(container);
    IPackageFragmentRoot defaultRoot = null;
    if (javaElement != null && javaElement.exists()) {
        IJavaProject javaProject = JavaCore.create(inputFile.getProject());
        try {//w w  w. j  ava  2 s.  c o  m
            IPackageFragmentRoot fragmentRoot[] = javaProject.getAllPackageFragmentRoots();
            for (int i = 0; i < fragmentRoot.length; i++) {
                if (fragmentRoot[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                    defaultRoot = fragmentRoot[i];
                    for (IJavaElement element : defaultRoot.getChildren()) {
                        if (element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                            javaElement = element;
                        }
                    }
                    break;
                }
            }
        } catch (JavaModelException e) {
            e.printStackTrace();
        }
    }
    if (javaElement == null || !(javaElement instanceof IPackageFragment)) {
        String projectName = inputFile.getProject().getName();
        externalizeStringsWizardPage.setErrorMessage("The project " + projectName + " has not source folder.");
        return;
    }

    externalizeStringsWizardPage.setDefaultRoot(defaultRoot);
    externalizeStringsWizardPage.setDefaultFolder(defaultRoot.getResource().getFullPath().toString());
    externalizeStringsWizardPage.setDefaultPackage(javaElement.getElementName());
}

From source file:org.eclipse.emf.editor.provider.ClasspathUriResolver.java

License:Open Source License

private URI findResourceInWorkspace(IJavaProject javaProject, URI classpathUri)
        throws JavaModelException, CoreException {
    Path fullPath = new Path(classpathUri.path());
    String projectRelativePath = fullPath.toString();
    if (javaProject.exists()) {
        IPackageFragmentRoot[] allPackageFragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot packageFragmentRoot : allPackageFragmentRoots) {
            IResource correspondingResource = packageFragmentRoot.getCorrespondingResource();
            if (correspondingResource != null) {
                if (correspondingResource instanceof IFile) {
                    // jar file
                    JarPackageFragmentRoot jarPackageFragmentRoot = (JarPackageFragmentRoot) JavaCore
                            .createJarPackageFragmentRootFrom((IFile) correspondingResource);
                    if (jarPackageFragmentRoot != null) {
                        ZipFile zipFile = jarPackageFragmentRoot.getJar();
                        if (zipFile != null) {
                            ZipEntry zipEntry = zipFile.getEntry(projectRelativePath.substring(1));
                            if (zipEntry != null) {
                                return URI.createURI("jar:" + "platform:/resource"
                                        + correspondingResource.getFullPath() + "!" + projectRelativePath,
                                        true);
                            }/* w ww  .  ja  va 2s  .c  o m*/
                        }
                    }
                } else {
                    // plain file
                    IFolder rootFolder = (IFolder) correspondingResource;
                    IResource modelFile = rootFolder.findMember(projectRelativePath);
                    if (modelFile != null && modelFile.exists() && modelFile instanceof IFile) {
                        URI platformResourceUri = URI
                                .createPlatformResourceURI(modelFile.getFullPath().toString(), true);
                        return platformResourceUri;
                    }
                }
            }
        }
    }
    return classpathUri;
}

From source file:org.eclipse.emf.mwe.ui.workflow.util.ProjectIncludingResourceLoader.java

License:Open Source License

/**
 * Builds a classloader for a Java project from the workspace.
 * @param project An Eclipse project//from w  w w.  ja  v a2 s. com
 * @throws CoreException
 */
public ClassLoader createClassLoader(final IProject project) throws CoreException {
    IJavaProject jp = JavaCore.create(project);

    //      IClasspathEntry[] javacp = jp.getResolvedClasspath(true);
    IPackageFragmentRoot[] roots = jp.getAllPackageFragmentRoots();
    URL[] urls = new URL[roots.length];

    IPath wsLocation = ResourcesPlugin.getWorkspace().getRoot().getLocation();
    for (int i = 0; i < roots.length; i++) {
        try {
            IPath path = roots[i].getPath();
            File file = path.toFile();
            if (!file.exists()) {
                path = wsLocation.append(path);
                file = path.toFile();
            }
            URL url = file.toURL();
            urls[i] = url;
        } catch (MalformedURLException e) {
            Activator.logError(e);
        }
    }
    return new URLClassLoader(urls);
}

From source file:org.eclipse.jdt.internal.core.JavaModelManager.java

License:Open Source License

private Map secondaryTypesSearching(IJavaProject project, boolean waitForIndexes, IProgressMonitor monitor,
        final PerProjectInfo projectInfo) throws JavaModelException {
    if (VERBOSE || BasicSearchEngine.VERBOSE) {
        StringBuffer buffer = new StringBuffer("JavaModelManager.secondaryTypesSearch("); //$NON-NLS-1$
        buffer.append(project.getElementName());
        buffer.append(',');
        buffer.append(waitForIndexes);/*from  w  ww  . j a va2  s  . com*/
        buffer.append(')');
        Util.verbose(buffer.toString());
    }

    final Hashtable secondaryTypes = new Hashtable(3);
    IRestrictedAccessTypeRequestor nameRequestor = new IRestrictedAccessTypeRequestor() {
        public void acceptType(int modifiers, char[] packageName, char[] simpleTypeName,
                char[][] enclosingTypeNames, String path, AccessRestriction access) {
            String key = packageName == null ? "" : new String(packageName); //$NON-NLS-1$
            HashMap types = (HashMap) secondaryTypes.get(key);
            if (types == null)
                types = new HashMap(3);
            types.put(new String(simpleTypeName), path);
            secondaryTypes.put(key, types);
        }
    };

    // Build scope using prereq projects but only source folders
    IPackageFragmentRoot[] allRoots = project.getAllPackageFragmentRoots();
    int length = allRoots.length, size = 0;
    IPackageFragmentRoot[] allSourceFolders = new IPackageFragmentRoot[length];
    for (int i = 0; i < length; i++) {
        if (allRoots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
            allSourceFolders[size++] = allRoots[i];
        }
    }
    if (size < length) {
        System.arraycopy(allSourceFolders, 0, allSourceFolders = new IPackageFragmentRoot[size], 0, size);
    }

    // Search all secondary types on scope
    new BasicSearchEngine().searchAllSecondaryTypeNames(allSourceFolders, nameRequestor, waitForIndexes,
            monitor);

    // Build types from paths
    Iterator packages = secondaryTypes.values().iterator();
    while (packages.hasNext()) {
        HashMap types = (HashMap) packages.next();
        Iterator names = types.entrySet().iterator();
        while (names.hasNext()) {
            Map.Entry entry = (Map.Entry) names.next();
            String typeName = (String) entry.getKey();
            String path = (String) entry.getValue();
            if (org.eclipse.jdt.internal.core.util.Util.isJavaLikeFileName(path)) {
                IFile file = ResourcesPlugin.getWorkspace().getRoot().getFile(new Path(path));
                ICompilationUnit unit = JavaModelManager.createCompilationUnitFrom(file, null);
                IType type = unit.getType(typeName);
                types.put(typeName, type); // replace stored path with type itself
            } else {
                names.remove();
            }
        }
    }

    // Store result in per project info cache if still null or there's still an indexing cache (may have been set by another thread...)
    if (projectInfo.secondaryTypes == null || projectInfo.secondaryTypes.get(INDEXED_SECONDARY_TYPES) != null) {
        projectInfo.secondaryTypes = secondaryTypes;
        if (VERBOSE || BasicSearchEngine.VERBOSE) {
            System.out.print(Thread.currentThread() + "   -> secondary paths stored in cache: "); //$NON-NLS-1$
            System.out.println();
            Iterator entries = secondaryTypes.entrySet().iterator();
            while (entries.hasNext()) {
                Map.Entry entry = (Map.Entry) entries.next();
                String qualifiedName = (String) entry.getKey();
                Util.verbose("      - " + qualifiedName + '-' + entry.getValue()); //$NON-NLS-1$
            }
        }
    }
    return projectInfo.secondaryTypes;
}

From source file:org.eclipse.jpt.common.core.internal.utility.JavaProjectTools.java

License:Open Source License

private static Iterable<IType> getTypes_(IJavaProject javaProject) throws JavaModelException {
    List<IType> typesList = new ArrayList<IType>();
    IPackageFragmentRoot[] pkgRoots = javaProject.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot root : pkgRoots) {
        IJavaElement[] jElements = root.getChildren();
        for (IJavaElement jElement : jElements) {
            if (jElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
                ICompilationUnit[] units = ((IPackageFragment) jElement).getCompilationUnits();
                for (ICompilationUnit unit : units) {
                    CollectionTools.addAll(typesList, unit.getTypes());
                }/* ww w  .j  a va2 s. c o m*/
            }
        }
    }
    return typesList;
}

From source file:org.eclipse.jpt.jpa.eclipselink.ui.internal.entity.data.model.EclipseLinkDynamicEntityDataModelProvider.java

License:Open Source License

/**
 * Returns all the the existing source path roots cross the selected project
 * @return a set of IPackageFragmentRoot with the kind of source path
 *//*from w w w  .  j  a  v a2s  . c o  m*/
protected IPackageFragmentRoot[] getJavaPackageFragmentRoots() {
    JpaProject jpaProject = getJpaProject();
    IPackageFragmentRoot[] packRoots = new IPackageFragmentRoot[0];
    List<IPackageFragmentRoot> rootList = new ArrayList<IPackageFragmentRoot>();
    if (jpaProject != null) {
        IJavaProject javaProject = jpaProject.getJavaProject();
        if (javaProject != null) {
            try {
                packRoots = javaProject.getAllPackageFragmentRoots();
                for (IPackageFragmentRoot root : packRoots) {
                    if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                        rootList.add(root);
                    }
                }
                packRoots = new IPackageFragmentRoot[rootList.size()];
                rootList.toArray(packRoots);
            } catch (JavaModelException e) {
                // fall through
                JptJpaEclipseLinkUiPlugin.instance().logError(e);
            }
        }
    }
    return packRoots;
}

From source file:org.eclipse.jpt.jpadiagrameditor.ui.internal.util.JPASolver.java

License:Open Source License

private void unregisterDeltedEntity(IResourceChangeEvent event) {
    if ((event.getType() == IResourceChangeEvent.PRE_CLOSE)
            || (event.getType() == IResourceChangeEvent.PRE_DELETE))
        return;//  www .  ja v a2 s . c om

    IResourceDelta changedDelta = event.getDelta();
    IResourceDelta[] deltas = changedDelta.getAffectedChildren();
    for (IResourceDelta delta : deltas) {
        final IResource resource = delta.getResource();
        if (resource != null && resource.exists()) {
            if (resource instanceof IProject) {
                IProject project = (IProject) resource;
                for (IResourceDelta deltaResource : delta.getAffectedChildren()) {
                    List<IResourceDelta> resources = new ArrayList<IResourceDelta>();
                    resources = findDeletedResource(deltaResource, resources);
                    for (IResourceDelta resourceDelta : resources) {
                        if (resourceDelta.getResource() instanceof File) {
                            IFile file = this.eclipseFacade.getWorkspace().getRoot()
                                    .getFile(((File) resourceDelta.getResource()).getFullPath());
                            if (!file.exists() && file.getFileExtension().equals("java")) { //$NON-NLS-1$
                                try {
                                    JpaProject jpaProject = JpaArtifactFactory.instance()
                                            .getJpaProject((IProject) resource);
                                    if (jpaProject != null) {
                                        IJavaProject javaProject = JavaCore.create(project);
                                        IPackageFragmentRoot[] fragmentRoots = javaProject
                                                .getAllPackageFragmentRoots();
                                        for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
                                            if ((fragmentRoot instanceof PackageFragmentRoot)
                                                    && fragmentRoot.getKind() == PackageFragmentRoot.K_SOURCE) {
                                                PackageFragmentRoot packageFragmentRoot = (PackageFragmentRoot) fragmentRoot;
                                                String sourcefolder = packageFragmentRoot.getResource()
                                                        .getName();
                                                String[] fq = file.getFullPath().toString().split(sourcefolder);
                                                String fqName = fq[1].replace("/", "."); //$NON-NLS-1$ //$NON-NLS-2$
                                                fqName = fqName.replaceFirst(".", "").replace(".java", ""); //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ //$NON-NLS-4$
                                                //JPAEditorUtil.createUnregisterEntityFromXMLJob(jpaProject, fqName);
                                            }
                                        }
                                    }
                                } catch (CoreException e) {
                                    JPADiagramEditorPlugin.logError(e);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

From source file:org.eclipse.jst.jee.model.internal.WebAnnotationReader.java

License:Open Source License

@Override
protected void loadModel() throws CoreException {
    IJavaProject javaProject = JavaCore.create(facetedProject.getProject());
    final Collection<ICompilationUnit> javaUnits = new HashSet<ICompilationUnit>();
    for (final IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) {
        visitJavaFiles(javaUnits, root);
    }//from www. jav a 2 s.c  o  m
    annotationFactory = WebAnnotationFactory.createFactory();

    modelToInterfaceUnit = new ManyToOneRelation<JavaEEObject, ICompilationUnit>();
    modelToUnit = new ManyToOneRelation<JavaEEObject, ICompilationUnit>();
    for (ICompilationUnit unit : javaUnits) {
        Result result = analyzeCompilationUnit(unit);
        if (result == null)
            continue;
        processResult(unit, result);
    }
}

From source file:org.eclipse.jst.jsf.core.jsfappconfig.AnnotationJSFAppConfigProvider.java

License:Open Source License

private void discoverFacesConfig() throws CoreException {
    facesConfig = FacesConfigFactory.eINSTANCE.createFacesConfigType();
    IJavaProject jProject = JavaCore.create(this.jsfAppConfigLocater.getJSFAppConfigManager().getProject());
    IPackageFragmentRoot[] roots = jProject.getAllPackageFragmentRoots();
    List<IPackageFragmentRoot> scannableRoots = new ArrayList<IPackageFragmentRoot>();
    if (roots != null) {
        for (IPackageFragmentRoot root : roots) {
            AnnotationPackageFragmentRoot facesRoot = new AnnotationPackageFragmentRoot(root);
            if (facesRoot.canContainAnnotatedComponents()) {
                scannableRoots.add(root);
            }//from  w w w .jav  a2  s.  c  o  m
        }
    }

    if (!scannableRoots.isEmpty()) {
        findAnnotatedComponents(jProject, scannableRoots);
    }
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private IPackageExportDescription[] getPackageExports(IProject project) throws CoreException {
    IBundleProjectService bundleProjectService = LibraFacetPlugin.getDefault().getBundleProjectService();
    List<IPackageExportDescription> list = new ArrayList<IPackageExportDescription>();

    if (isJavaProject(project)) {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
            if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                    && fragmentRoot.getParent().equals(javaProject)) {
                IJavaElement[] elements = fragmentRoot.getChildren();
                for (IJavaElement element : elements) {
                    IPackageFragment fragment = (IPackageFragment) element;
                    if (fragment.containsJavaResources()) {
                        list.add(bundleProjectService.newPackageExport(fragment.getElementName(), null, true,
                                null));/*from w w w.jav a  2s  . c o m*/
                    }
                }
            }
        }
    }

    return list.toArray(new IPackageExportDescription[list.size()]);
}