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:ccw.ClojureCore.java

License:Open Source License

/**
 * @return starting with a leading slash "/", the root classpath relative
 *         path of this file/* w w  w  . ja  va 2s. c  om*/
 */
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:ch.mlutz.plugins.t4e.tools.EclipseTools.java

License:Open Source License

/**
 * @param project/*from  w w w .j  a v  a2s. com*/
 * @return
 * @throws CoreException
 * @throws JavaModelException
 */
public static IPackageFragmentRoot[] getPackageFragmentRoots(IProject project)
        throws CoreException, JavaModelException {
    IPackageFragmentRoot[] packageFragmentRoots = null;
    IJavaProject javaProject = null;
    if (project.hasNature(JavaCore.NATURE_ID)) {
        // Cast the IProject to IJavaProject.
        javaProject = JavaCore.create(project);

        // Get the array of IPackageFragmentRoot using getAllPackageFragmentRoots()
        packageFragmentRoots = javaProject.getAllPackageFragmentRoots();

        // Get the one(s) which have getKind() == IPackageFragmentRoot.K_SOURCE
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) {
                System.out.println("Source Folder: " + packageFragmentRoot.getPath());
            }
        }
    }

    return packageFragmentRoots;
}

From source file:cn.ieclipse.pde.explorer.java.JavaAdapterFactory.java

License:Apache License

public IExplorable getFromJava(IJavaElement obj) {
    String path = null;/* w ww  . j av  a2s .c o  m*/
    // java project.
    if (obj instanceof IJavaProject) {
        path = ((IJavaProject) obj).getProject().getLocation().toOSString();
        return new Explorer(path, null);
    }
    // jar resource is null
    else if (obj instanceof JarPackageFragmentRoot) {
        IPackageFragmentRoot lib = ((IPackageFragmentRoot) obj);
        if (!lib.isExternal()) {
            IWorkspaceRoot root = lib.getJavaProject().getProject().getWorkspace().getRoot();
            IResource res = root.findMember(lib.getPath());
            if (res != null) {
                return ExplorerPlugin.getFromResource(res);
            }
        }
        // external lib
        String file = lib.getPath().toOSString();
        return new Explorer(null, file);
    } else if (obj instanceof IPackageFragmentRoot) {
        // src folder
        IPackageFragmentRoot src = ((IPackageFragmentRoot) obj);
        IProject p = src.getJavaProject().getProject();
        String prjPath = p.getLocation().toOSString();
        IResource res = src.getResource();
        // Fix multi-folder source folder issue
        String srcospath = res.getProjectRelativePath().toOSString();
        path = new File(prjPath, srcospath).getAbsolutePath();
        // end fix
        return new Explorer(path, null);
        // System.out.println(path);
    } else if (obj instanceof IPackageFragment) {// other : package
        IResource resource = ((IPackageFragment) obj).getResource();
        path = resource.getLocation().toOSString();
        return new Explorer(path, null);
    } else {// member:filed:
        IResource resource = ((IJavaElement) obj).getResource();
        String file = resource.getLocation().toOSString();
        // get folder
        return new Explorer(null, file);
    }
}

From source file:com.aerospike.project.wizards.NewAerospikeProjectWizard.java

License:Apache License

protected boolean generateJavaProject() {
    URL url = this.getClass().getResource("project.stg");
    final STGroup projectSTG = new STGroupFile(url.getPath());
    final String projectName = page.getProjectName();
    final String author = page.getAuthor();
    final String email = page.getEmail();
    final String artifactId = page.getArtifiactId();
    final String version = page.getVersion();
    final String packageString = page.getPackage();
    final String mainClass = page.getMainClassName();
    final String seedNode = page.getSeedNode();
    final String port = page.getPortString();
    final boolean generateMain = page.getGenerateMain();
    final boolean generateJUnit = page.getGenerateJUnit();
    IRunnableWithProgress op = new IRunnableWithProgress() {
        public void run(IProgressMonitor monitor) throws InvocationTargetException {
            try {
                //Create the project
                IProject project = createProject(projectName, monitor);
                project.setPersistentProperty(CoreActivator.SEED_NODE_PROPERTY, seedNode);
                project.setPersistentProperty(CoreActivator.PORT_PROPERTY, port);
                project.setPersistentProperty(CoreActivator.UDF_DIRECTORY, null);
                project.setPersistentProperty(CoreActivator.AQL_GENERATION_DIRECTORY, null);
                //make a java project
                IJavaProject javaProject = JavaCore.create(project);
                // create the classpath entries
                List<IClasspathEntry> entries = new ArrayList<IClasspathEntry>();
                IExecutionEnvironmentsManager executionEnvironmentsManager = JavaRuntime
                        .getExecutionEnvironmentsManager();
                IExecutionEnvironment[] executionEnvironments = executionEnvironmentsManager
                        .getExecutionEnvironments();
                for (IExecutionEnvironment iExecutionEnvironment : executionEnvironments) {
                    // We will look for JavaSE-1.6 as the JRE container to add to our classpath
                    if ("JavaSE-1.6".equals(iExecutionEnvironment.getId())) {
                        entries.add(JavaCore
                                .newContainerEntry(JavaRuntime.newJREContainerPath(iExecutionEnvironment)));
                        break;
                    } else if ("JavaSE-1.5".equals(iExecutionEnvironment.getId())) {
                        entries.add(JavaCore
                                .newContainerEntry(JavaRuntime.newJREContainerPath(iExecutionEnvironment)));
                        break;
                    }/*from w  ww  . jav  a2 s  . c o m*/
                }
                IClasspathEntry mavenEntry = JavaCore.newContainerEntry(
                        new Path("org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"), new IAccessRule[0],
                        new IClasspathAttribute[] { JavaCore.newClasspathAttribute(
                                "org.eclipse.jst.component.dependency", "/WEB-INF/lib") },
                        false);
                entries.add(mavenEntry);
                javaProject.setRawClasspath(entries.toArray(new IClasspathEntry[entries.size()]), null);
                // create source folders
                IFolder srcMainJava = project.getFolder("src/main/java");
                createFolder(srcMainJava);
                IFolder srcMainResource = project.getFolder("src/main/resource");
                createFolder(srcMainResource);
                IFolder srcTestJava = project.getFolder("src/test/java");
                createFolder(srcTestJava);
                IFolder srcTestResource = project.getFolder("src/test/resource");
                createFolder(srcTestResource);
                // create aerospike folders
                IFolder srcUDF = project.getFolder(store.getString(PreferenceConstants.UDF_PATH));
                createFolder(srcUDF);
                IFolder srcGenerated = project.getFolder(store.getString(PreferenceConstants.GENERATION_PATH));
                createFolder(srcGenerated);
                IFolder srcAql = project.getFolder("aql");
                createFolder(srcAql);
                //
                IPackageFragmentRoot mainJava = javaProject.getPackageFragmentRoot(srcMainJava);
                IPackageFragmentRoot mainResource = javaProject.getPackageFragmentRoot(srcMainResource);
                IPackageFragmentRoot testJava = javaProject.getPackageFragmentRoot(srcTestJava);
                IPackageFragmentRoot testResource = javaProject.getPackageFragmentRoot(srcTestResource);
                IPackageFragmentRoot mainGenerated = javaProject.getPackageFragmentRoot(srcGenerated);
                IClasspathEntry[] oldEntries = javaProject.getRawClasspath();
                IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 5];
                System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length);
                newEntries[oldEntries.length] = JavaCore.newSourceEntry(mainJava.getPath());
                newEntries[oldEntries.length + 1] = JavaCore.newSourceEntry(mainResource.getPath());
                newEntries[oldEntries.length + 2] = JavaCore.newSourceEntry(testJava.getPath());
                newEntries[oldEntries.length + 3] = JavaCore.newSourceEntry(testResource.getPath());
                newEntries[oldEntries.length + 4] = JavaCore.newSourceEntry(mainGenerated.getPath());
                javaProject.setRawClasspath(newEntries, monitor);
                // create the pom.xml
                ST template = projectSTG.getInstanceOf("pom");
                template.add("name", projectName);
                template.add("artifactId", artifactId);
                template.add("version", version);
                template.add("author", author);
                template.add("email", email);
                template.add("mainClass", mainClass);
                template.add("package", packageString);
                createFile(project, null, "pom.xml", monitor, template);
                // create the log4J.properties
                template = projectSTG.getInstanceOf("log4J");
                template.add("package", packageString);
                template.add("mainClass", mainClass);
                createFile(project, srcMainJava, "log4j.properties", monitor, template);
                // create the .gitignore
                template = projectSTG.getInstanceOf("ignore");
                createFile(project, null, ".gitignore", monitor, template);
                // create the README
                template = projectSTG.getInstanceOf("readme");
                template.add("name", projectName);
                createFile(project, null, "README.md", monitor, template);
                // create package
                // create JUnit
                if (generateJUnit) {
                    IPackageFragment pack = javaProject.getPackageFragmentRoot(srcTestJava)
                            .createPackageFragment(packageString, false, null);
                    template = projectSTG.getInstanceOf("junit");
                    template.add("name", mainClass + "Test");
                    template.add("package", packageString);
                    template.add("classUnderTest", mainClass);
                    pack.createCompilationUnit(mainClass + "Test" + ".java", template.render(), false, monitor);
                }
                // create main class
                IPackageFragment pack = javaProject.getPackageFragmentRoot(srcMainJava)
                        .createPackageFragment(packageString, false, null);
                template = projectSTG.getInstanceOf("mainClass");
                template.add("name", mainClass);
                template.add("package", packageString);
                template.add("author", author);
                template.add("seedNode", seedNode);
                template.add("port", port);
                final ICompilationUnit cu = pack.createCompilationUnit(mainClass + ".java", template.render(),
                        false, monitor);
                // open editor on main class
                monitor.setTaskName("Opening file for editing...");
                getShell().getDisplay().asyncExec(new Runnable() {
                    public void run() {
                        IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow()
                                .getActivePage();
                        try {
                            IEditorPart editor = IDE.openEditor(page, (IFile) cu.getResource(), true);
                        } catch (PartInitException e) {
                        }
                    }
                });

            } catch (CoreException e) {
                throw new InvocationTargetException(e);
            } finally {
                monitor.done();
            }
        }
    };
    try {
        getContainer().run(true, false, op);
    } catch (InterruptedException e) {
        return false;
    } catch (InvocationTargetException e) {
        Throwable realException = e.getTargetException();
        MessageDialog.openError(getShell(), "Error", realException.getMessage());
        return false;
    }
    return true;
}

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  w w  w. j a v a2  s .c om*/
        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;
}

From source file:com.amazonaws.eclipse.lambda.project.wizard.NewLambdaJavaFunctionProjectWizard.java

License:Open Source License

private static void addTestDirectoryToClasspath(IProject project) {

    try {/*from   w  ww. j  a  va 2 s  . c o m*/
        IJavaProject javaProj = JavaCore.create(project);
        IFolder tstFolder = project.getFolder("tst");

        IPackageFragmentRoot tstRoot = javaProj.getPackageFragmentRoot(tstFolder);

        IClasspathEntry[] originalCp = javaProj.getRawClasspath();
        IClasspathEntry[] augmentedCp = new IClasspathEntry[originalCp.length + 1];
        System.arraycopy(originalCp, 0, augmentedCp, 0, originalCp.length);

        augmentedCp[originalCp.length] = JavaCore.newSourceEntry(tstRoot.getPath());

        javaProj.setRawClasspath(augmentedCp, null);

    } catch (Exception e) {
        LambdaPlugin.getDefault().warn("Failed to add tst directory to the classpath", e);
    }
}

From source file:com.amazonaws.eclipse.lambda.project.wizard.util.FunctionProjectUtil.java

License:Open Source License

private static void addTestDirectoryToClasspath(IProject project) {

    try {/*from  w  w  w  .  j av  a2  s .c  o m*/
        IJavaProject javaProj = JavaCore.create(project);
        IFolder tstFolder = project.getFolder("tst");

        IPackageFragmentRoot tstRoot = javaProj.getPackageFragmentRoot(tstFolder);

        if (javaProj.isOnClasspath(tstRoot))
            return;

        IClasspathEntry[] originalCp = javaProj.getRawClasspath();
        IClasspathEntry[] augmentedCp = new IClasspathEntry[originalCp.length + 1];
        System.arraycopy(originalCp, 0, augmentedCp, 0, originalCp.length);

        augmentedCp[originalCp.length] = JavaCore.newSourceEntry(tstRoot.getPath());
        javaProj.setRawClasspath(augmentedCp, null);

    } catch (Exception e) {
        LambdaPlugin.getDefault().warn("Failed to add tst directory to the classpath", e);
    }
}

From source file:com.android.ide.eclipse.adt.internal.editors.binaryxml.BinaryXMLMultiPageEditorPart.java

License:Open Source License

@Override
protected void setInput(IEditorInput input) {
    if (input instanceof JarEntryEditorInput) {
        JarEntryEditorInput jarInput = (JarEntryEditorInput) input;
        IStorage storage = jarInput.getStorage();
        if (storage instanceof JarEntryFile) {
            JarEntryFile jarEntryFile = (JarEntryFile) storage;
            IPackageFragmentRoot fragmentRoot = jarEntryFile.getPackageFragmentRoot();
            if (fragmentRoot == null) {
                super.setInput(input);
                return;
            }/* w ww .jav a 2s  .com*/
            IPath path = fragmentRoot.getPath();
            if (path == null) {
                super.setInput(input);
                return;
            }
            path = path.removeLastSegments(1);
            IPath filePath = path.append(SdkConstants.FD_DATA)
                    .append(jarEntryFile.getFullPath().toPortableString());
            File file = new File(filePath.toOSString());
            if (!(file.isFile())) {
                super.setInput(input);
                return;
            }
            try {
                XmlStorageEditorInput newInput = new XmlStorageEditorInput(new FileStorage(file));
                super.setInput(newInput);
                return;
            } catch (Exception e) {
                AdtPlugin.log(e, e.getMessage(), null);
            }
        }
    }
    super.setInput(input);
}

From source file:com.blackducksoftware.integration.eclipseplugin.common.services.ProjectInformationService.java

License:Apache License

public URL getBinaryDependencyFilepath(final IPackageFragmentRoot packageFragmentRoot) {
    try {/*from  w  w  w  .j a v a 2s .co  m*/
        if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_BINARY) {
            return packageFragmentRoot.getPath().toFile().toURI().toURL();
        }
    } catch (final JavaModelException e) {
        /*
         * If root does not exist or exception occurs while accessing
         * resource, do not add its filepath to the list of binary
         * dependency filepaths
         */
    } catch (MalformedURLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return null;
}

From source file:com.codenvy.ide.ext.java.server.internal.core.NameLookup.java

License:Open Source License

/**
 * Returns the package fragment whose path matches the given
 * (absolute) path, or <code>null</code> if none exist. The domain of
 * the search is bounded by the classpath of the <code>IJavaProject</code>
 * this <code>NameLookup</code> was obtained from.
 * The path can be://from www  .j av a2s .c o  m
 * - internal to the workbench: "/Project/src"
 * - external to the workbench: "c:/jdk/classes.zip/java/lang"
 */
public IPackageFragment findPackageFragment(IPath path) {
    if (!path.isAbsolute()) {
        throw new IllegalArgumentException(Messages.path_mustBeAbsolute);
    }
    /*
     * TODO (jerome) this code should rather use the package fragment map to find the candidate package, then
     * check if the respective enclosing root maps to the one on this given IPath.
     */
    IResource possibleFragment = ResourcesPlugin.getWorkspace().getRoot().findMember(path);
    if (possibleFragment == null) {
        //external jar
        for (int i = 0; i < this.packageFragmentRoots.length; i++) {
            IPackageFragmentRoot root = this.packageFragmentRoots[i];
            if (!root.isExternal()) {
                continue;
            }
            IPath rootPath = root.getPath();
            if (rootPath.isPrefixOf(path)) {
                String name = path.toOSString();
                // + 1 is for the File.separatorChar
                name = name.substring(rootPath.toOSString().length() + 1, name.length());
                name = name.replace(File.separatorChar, '.');
                IJavaElement[] list = null;
                try {
                    list = root.getChildren();
                } catch (JavaModelException npe) {
                    continue; // the package fragment root is not present;
                }
                int elementCount = list.length;
                for (int j = 0; j < elementCount; j++) {
                    IPackageFragment packageFragment = (IPackageFragment) list[j];
                    if (nameMatches(name, packageFragment, false)) {
                        return packageFragment;
                    }
                }
            }
        }
    } else {
        IJavaElement fromFactory = JavaCore.create(possibleFragment);
        if (fromFactory == null) {
            return null;
        }
        switch (fromFactory.getElementType()) {
        case IJavaElement.PACKAGE_FRAGMENT:
            return (IPackageFragment) fromFactory;
        case IJavaElement.JAVA_PROJECT:
            // default package in a default root
            JavaProject project = (JavaProject) fromFactory;
            try {
                IClasspathEntry entry = project.getClasspathEntryFor(path);
                if (entry != null) {
                    IPackageFragmentRoot root = project.getPackageFragmentRoot(project.getResource());
                    Object defaultPkgRoot = this.packageFragments.get(CharOperation.NO_STRINGS);
                    if (defaultPkgRoot == null) {
                        return null;
                    }
                    if (defaultPkgRoot instanceof PackageFragmentRoot && defaultPkgRoot.equals(root))
                        return ((PackageFragmentRoot) root).getPackageFragment(CharOperation.NO_STRINGS);
                    else {
                        IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) defaultPkgRoot;
                        for (int i = 0; i < roots.length; i++) {
                            if (roots[i].equals(root)) {
                                return ((PackageFragmentRoot) root)
                                        .getPackageFragment(CharOperation.NO_STRINGS);
                            }
                        }
                    }
                }
            } catch (JavaModelException e) {
                return null;
            }
            return null;
        case IJavaElement.PACKAGE_FRAGMENT_ROOT:
            return ((PackageFragmentRoot) fromFactory).getPackageFragment(CharOperation.NO_STRINGS);
        }
    }
    return null;
}