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

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

Introduction

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

Prototype

IPath getPath();

Source Link

Document

Returns the path to the innermost resource enclosing this element.

Usage

From source file:org.jetbrains.kotlin.core.utils.ProjectUtils.java

License:Apache License

@NotNull
private static List<File> getFileByEntry(@NotNull IClasspathEntry entry, @NotNull IJavaProject javaProject) {
    List<File> files = Lists.newArrayList();

    IPackageFragmentRoot[] packageFragmentRoots = javaProject.findPackageFragmentRoots(entry);
    if (packageFragmentRoots.length > 0) {
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            IResource resource = packageFragmentRoot.getResource();
            if (resource != null) {
                files.add(resource.getLocation().toFile());
            } else { // This can be if resource is external
                files.add(packageFragmentRoot.getPath().toFile());
            }/*from ww w .jav a 2 s.  c  o  m*/
        }
    } else {
        File file = entry.getPath().toFile();
        if (file.exists()) {
            files.add(file);
        }
    }

    return files;
}

From source file:org.jetbrains.kotlin.testframework.utils.TestJavaProject.java

License:Apache License

public IPackageFragmentRoot createSourceFolder(String srcFolderName) throws CoreException {
    IFolder folder = createFolderIfNotExist(srcFolderName);
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);
    for (IClasspathEntry entry : javaProject.getResolvedClasspath(false)) {
        if (folder.getFullPath().equals(entry.getPath())) {
            return root;
        }// w w w.  j av a 2s  .com
    }

    IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
    System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
    newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath());
    javaProject.setRawClasspath(newEntries, null);

    return root;
}

From source file:org.jetbrains.kotlin.wizards.NewUnitWizardPage.java

License:Apache License

private void setSourceDirByFolderName(String folderName) {
    try {//from  ww  w.  j a va  2s  . c  om
        sourceDir = null;
        for (IJavaProject jp : JavaCore.create(getWorkspaceRoot()).getJavaProjects()) {
            for (IPackageFragmentRoot pfr : jp.getPackageFragmentRoots()) {
                if (pfr.getPath().toPortableString().equals(folderName)) {
                    sourceDir = pfr;
                    return;
                }
            }
        }
    } catch (JavaModelException jme) {
        KotlinLogger.logAndThrow(jme);
    }
}

From source file:org.key_project.util.jdt.JDTUtil.java

License:Open Source License

/**
 * Returns the {@link IResource}s of the given {@link IClasspathEntry}.
 * @param javaProject The actual {@link IJavaProject} that provides the {@link IClasspathEntry}.
 * @param entry The given {@link IClasspathEntry}.
 * @param alreadyHandledProjects The already handled {@link IProject} that don't need to be analysed again.
 * @return The found {@link IResource}s.
 * @throws JavaModelException /* www .  j  a va2s .  c  o m*/
 */
private static List<IResource> getResourceFor(IJavaProject javaProject, IClasspathEntry entry, int expectedKind,
        Set<IProject> alreadyHandledProjects) throws JavaModelException {
    if (entry != null) {
        if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER
                || entry.getEntryKind() == IClasspathEntry.CPE_SOURCE
                || entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
                || entry.getEntryKind() == IClasspathEntry.CPE_VARIABLE) {
            List<IResource> result = new LinkedList<IResource>();
            IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry);
            for (IPackageFragmentRoot root : roots) {
                if (root.getKind() == expectedKind) {
                    if (root.getResource() != null) {
                        if (root.getResource().getLocationURI() != null) {
                            result.add(root.getResource());
                        }
                    } else if (root.getPath() != null) {
                        IResource resource = ResourcesPlugin.getWorkspace().getRoot()
                                .findMember(root.getPath());
                        if (resource != null && resource.exists()) {
                            result.add(resource);
                        }
                    }
                }
            }
            return result; // Ignore containers
        } else if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
            Assert.isNotNull(entry.getPath());
            IResource project = ResourcesPlugin.getWorkspace().getRoot().findMember(entry.getPath());
            Assert.isTrue(project instanceof IProject);
            if (!alreadyHandledProjects.contains(project)) {
                return getSourceResources((IProject) project, alreadyHandledProjects);
            } else {
                return null; // Project was already analyzed, no need to do it again.
            }
        } else {
            Assert.isTrue(false, "Unknown content kind \"" + entry.getContentKind()
                    + "\" of class path entry \"" + entry + "\".");
            return null;
        }
    } else {
        return null;
    }
}

From source file:org.key_project.util.jdt.JDTUtil.java

License:Open Source License

/**
 * Returns the locations of the given {@link IClasspathEntry}.
 * @param javaProject The actual {@link IJavaProject} that provides the {@link IClasspathEntry}.
 * @param entry The given {@link IClasspathEntry}.
 * @param alreadyHandledProjects The already handled {@link IProject} that don't need to be analysed again.
 * @return The found locations.//  ww  w . j ava 2  s .  c  o  m
 * @throws JavaModelException 
 */
private static List<File> getLocationFor(IJavaProject javaProject, IClasspathEntry entry, int expectedKind,
        Set<IProject> alreadyHandledProjects) throws JavaModelException {
    if (entry != null) {
        if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER
                || entry.getEntryKind() == IClasspathEntry.CPE_SOURCE
                || entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
                || entry.getEntryKind() == IClasspathEntry.CPE_VARIABLE) {
            List<File> result = new LinkedList<File>();
            IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry);
            for (IPackageFragmentRoot root : roots) {
                if (root.getKind() == expectedKind) {
                    if (root.getResource() != null) {
                        if (root.getResource().getLocationURI() != null) {
                            result.add(ResourceUtil.getLocation(root.getResource()));
                        }
                    } else if (root.getPath() != null) {
                        File location = new File(root.getPath().toString());
                        if (location.exists()) {
                            result.add(location);
                        }
                    }
                }
            }
            return result; // Ignore containers
        } else if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
            Assert.isNotNull(entry.getPath());
            IResource project = ResourcesPlugin.getWorkspace().getRoot().findMember(entry.getPath());
            Assert.isTrue(project instanceof IProject);
            if (!alreadyHandledProjects.contains(project)) {
                return getSourceLocations((IProject) project, alreadyHandledProjects);
            } else {
                return null; // Project was already analyzed, no need to do it again.
            }
        } else {
            Assert.isTrue(false, "Unknown content kind \"" + entry.getContentKind()
                    + "\" of class path entry \"" + entry + "\".");
            return null;
        }
    } else {
        return null;
    }
}

From source file:org.kie.eclipse.utils.FileUtils.java

License:Apache License

public static void addFolderToClasspath(IJavaProject project, String folderName, boolean create,
        IProgressMonitor monitor) throws JavaModelException, CoreException {
    List<IClasspathEntry> list = new ArrayList<IClasspathEntry>();
    list.addAll(Arrays.asList(project.getRawClasspath()));
    IFolder folder = project.getProject().getFolder(folderName);
    if (create || folder.exists()) {
        if (create)
            createFolder(folder, monitor);
        IPackageFragmentRoot ipackagefragmentroot = project.getPackageFragmentRoot(folder);
        list.add(JavaCore.newSourceEntry(ipackagefragmentroot.getPath()));
        project.setRawClasspath((IClasspathEntry[]) list.toArray(new IClasspathEntry[list.size()]), null);
    }// ww w . j  a  va  2s .  c  om
}

From source file:org.kie.eclipse.wizard.project.AbstractKieProjectWizard.java

License:Apache License

protected void addSourceFolder(IJavaProject project, List<IClasspathEntry> list, String s,
        IProgressMonitor monitor) throws CoreException {
    IFolder folder = project.getProject().getFolder(s);
    FileUtils.createFolder(folder, monitor);
    IPackageFragmentRoot ipackagefragmentroot = project.getPackageFragmentRoot(folder);
    list.add(JavaCore.newSourceEntry(ipackagefragmentroot.getPath()));
}

From source file:org.lejos.tools.eclipse.plugin.util.AbstractJavaTestProject.java

License:Open Source License

protected IPackageFragmentRoot createSourceFolder(String srcFolder) throws CoreException {
    IFolder folder = project.getFolder(srcFolder);
    folder.create(false, true, null);/*  www .  j  a v a  2s .  co  m*/
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(folder);

    IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
    IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1];
    System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
    newEntries[oldEntries.length] = JavaCore.newSourceEntry(root.getPath());
    javaProject.setRawClasspath(newEntries, null);
    return root;
}

From source file:org.limy.eclipse.qalab.common.LimyQalabJavaUtils.java

License:Open Source License

/**
 * PackageFragmentRoot?pX?B/*from w w  w  .j  av  a 2  s . c om*/
 * @param fragment PackageFragmentRoot
 * @return
 * @throws CoreException 
 */
public static String getExternalLocation(IPackageFragmentRoot fragment) throws CoreException {

    String location = null;
    if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) {
        // v?WFNgQ?v?WFNg\?[XfBNg
        IPath outputLocation = fragment.getRawClasspathEntry().getOutputLocation();
        if (outputLocation != null) {
            // \?[XpXL?o?w??
            location = LimyQalabUtils.createFullPath(fragment.getJavaProject(), outputLocation);
        } else {
            // \?[XpXL?o?w???Av?WFNgftHg?o?gp
            location = LimyQalabUtils.createFullPath(fragment.getJavaProject(),
                    fragment.getJavaProject().getOutputLocation());
        }
    } else {
        // v?WFNgclasspathQ?v?WFNgExportCu
        IResource resource = fragment.getResource();
        if (resource != null) {
            location = resource.getLocation().toString();
        } else {
            // Variablewjart@Cresource = null 
            IPath path = fragment.getRawClasspathEntry().getPath();
            if (!path.toString().startsWith("org.eclipse.jdt.launching.JRE_CONTAINER")) {
                // JREOJARt@C?iVariablew?jNXpX
                location = fragment.getPath().toString();
            }
        }
    }
    return location;
}

From source file:org.limy.eclipse.qalab.propertypage.SourceDirSelector.java

License:Open Source License

/**
 * pbP?[WfBNgI???s?B/*from www.  j  a  va2  s . c o  m*/
 * @throws JavaModelException 
 */
private void setPackageDir() throws JavaModelException {

    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(new Shell(),
            new WorkbenchLabelProvider(), new WorkbenchContentProvider());

    dialog.setTitle(Messages.TITLE_SELECT_SOURCE_DIR);
    dialog.setMessage(Messages.MES_SELECT_SOURCE_DIR);
    ViewerFilter filter = new ViewerFilter() {
        @Override
        public boolean select(Viewer viewer, Object parentElement, Object element) {
            if (element instanceof IPackageFragmentRoot) {
                return true;
            }
            return false;
        }
    };
    dialog.addFilter(filter);

    Collection<IPackageFragmentRoot> targetElements = new ArrayList<IPackageFragmentRoot>();
    for (IProject project : projects) {
        IJavaProject javaProject = JavaCore.create(project);
        for (IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) {
            if (root.getKind() == IPackageFragmentRoot.K_SOURCE) {
                // jarpbP?[W?O
                targetElements.add(root);
            }
        }
    }

    dialog.setInput(new AdaptableList(targetElements));

    if (dialog.open() == Dialog.OK) {

        Object[] results = dialog.getResult();
        for (Object result : results) {
            IPackageFragmentRoot fragment = (IPackageFragmentRoot) result;
            control.add(fragment.getElementName());
            if (listener != null) {
                PropertyChangeEvent evt = new PropertyChangeEvent(control, "resultPath", null,
                        fragment.getPath());
                listener.propertyChange(evt);
            }
        }
    }
}