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

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

Introduction

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

Prototype

IPackageFragmentRoot getPackageFragmentRoot(IResource resource);

Source Link

Document

Returns a package fragment root for the given resource, which must either be a folder representing the top of a package hierarchy, or a ZIP archive (e.g.

Usage

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

License:Apache License

private static IJavaProject buildJavaProject(@NotNull IProject project)
        throws CoreException, FileNotFoundException {
    IJavaProject result = JavaCore.create(project);

    IFolder binFolder = project.getFolder(BIN_FOLDER);
    if (!binFolder.exists()) {
        binFolder.create(false, true, null);
    }/* w  w  w.j  a v  a2s  .co  m*/
    result.setOutputLocation(binFolder.getFullPath(), null);

    IFolder srcFolder = project.getFolder(SRC_FOLDER);
    if (!srcFolder.exists()) {
        srcFolder.create(false, true, null);
    }

    result.setRawClasspath(
            new IClasspathEntry[] { JavaCore.newContainerEntry(new Path(JavaRuntime.JRE_CONTAINER)),
                    JavaCore.newSourceEntry(result.getPackageFragmentRoot(srcFolder).getPath()) },
            null);

    ProjectUtils.addKotlinRuntime(project);

    return result;
}

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);
    }//from   w w  w.j  ava  2  s .com
}

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.mobicents.eclipslee.servicecreation.wizards.generic.FilenamePage.java

License:Apache License

/**
 * Tests if the current workbench selection is a suitable
 * container to use./*  w  w  w  .  j a  v  a  2 s  . co m*/
 */

private void initialize() {
    if (selection != null && selection.isEmpty() == false && selection instanceof IStructuredSelection) {

        IJavaElement element = getInitialJavaElement((IStructuredSelection) selection);
        IPackageFragmentRoot initialRoot;
        initialRoot = JavaModelUtil.getPackageFragmentRoot(element);
        if (initialRoot == null || initialRoot.isArchive()) {
            IJavaProject javaProject = element.getJavaProject();
            if (javaProject != null) {
                try {
                    initialRoot = null;
                    if (javaProject.exists()) {
                        IPackageFragmentRoot roots[] = javaProject.getPackageFragmentRoots();
                        for (int i = 0; i < roots.length; i++) {
                            if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) {
                                initialRoot = roots[i];
                                break;
                            }
                        }
                    }
                } catch (JavaModelException e) {
                    ServiceCreationPlugin.log("JavaModelException determining project root.");
                }
                if (initialRoot == null) {
                    initialRoot = javaProject.getPackageFragmentRoot(javaProject.getResource());
                }
            }
        }

        try {
            setSourceContainer((IFolder) initialRoot.getCorrespondingResource());
        } catch (JavaModelException e) {
            ServiceCreationPlugin.log("JavaModelException thrown setting source container on FilenamePage");
        }

        //         // Initialize the maven module dialog
        //         mavenModuleText.setText(mavenModule);

        // Initialize the filename dialog
        fileText.setText("__Replace_Me__" + ends);

        if (element != null && element.getElementType() == IJavaElement.PACKAGE_FRAGMENT) {
            IPackageFragment fragment = (IPackageFragment) element;
            setPackage(fragment);
            return;
        }

        if (element != null && element.getElementType() == IJavaElement.COMPILATION_UNIT) {
            ICompilationUnit unit = (ICompilationUnit) element;
            IPackageFragment fragment = (IPackageFragment) unit.getParent();
            setPackage(fragment);
            return;
        }

        setPackage(null);
    }

}

From source file:org.nuxeo.ide.sdk.index.DependencyProvider.java

License:Open Source License

public static Set<Dependency> getTestDependencies(IJavaProject project) throws Exception {
    Set<Dependency> result = new HashSet<Dependency>();
    IResource rootResource = project.getProject().getFolder("src/test/java");
    if (rootResource.exists()) {
        IPackageFragmentRoot root = project.getPackageFragmentRoot(rootResource);
        if (root != null) {
            introspectPackageRoot(root, result);
        }/*from   w  w  w .java  2 s  .c  o  m*/
    }
    return result;
}

From source file:org.nuxeo.ide.sdk.ui.widgets.PackageChooser.java

License:Open Source License

public IPackageFragmentRoot getSourceRoot(IJavaProject project) {
    IResource resource = project.getProject().getFolder("src/main/java");
    return project.getPackageFragmentRoot(resource);
}

From source file:org.nuxeo.ide.sdk.ui.widgets.TestPackageChooser.java

License:Open Source License

public IPackageFragmentRoot getSourceRoot(IJavaProject project) {
    IResource resource = project.getProject().getFolder("src/test/java");
    return project.getPackageFragmentRoot(resource);
}

From source file:org.occiware.clouddesigner.occi.gen.connector.ui.wizards.NewConnectorWizard.java

License:Open Source License

private void createConnectorJavaProject(String connectorProjectName, String extensionScheme,
        IProgressMonitor monitor) throws CoreException {
    // Get the file containing the OCCI extension.
    String extensionFile = OCCIRegistry.getInstance().getFileURI(extensionScheme);

    // This connector project will require the bundle containing the OCCI extension.
    // Warning extensionFile must be a platform URI (plugin or resource).
    String tmp = extensionFile.substring("platform:/".length());
    tmp = tmp.substring(tmp.indexOf('/') + 1);
    String requireBundle = tmp.substring(0, tmp.indexOf('/'));
    // FIXME we suppose that the project name is equals to the bundle name. 
    IProject requireProject = ResourcesPlugin.getWorkspace().getRoot().getProject(requireBundle);

    // See https://sdqweb.ipd.kit.edu/wiki/JDT_Tutorial:_Creating_Eclipse_Java_Projects_Programmatically

    // Create an Eclipse project.
    IProject connectorProject = ResourcesPlugin.getWorkspace().getRoot().getProject(connectorProjectName);
    connectorProject.create(null);//from  w w  w  . j  a va  2 s  . c o m
    connectorProject.open(null);

    // Because we need a java project, we have to set the Java nature to the created project:
    IProjectDescription description = connectorProject.getDescription();
    description.setNatureIds(new String[] { JavaCore.NATURE_ID });
    connectorProject.setDescription(description, null);

    // Now we can create our Java project
    IJavaProject javaProject = JavaCore.create(connectorProject);

    // However, it's not enough if we want to add Java source code to the project. We have to set the Java build path:

    // (1) We first specify the output location of the compiler (the bin folder):
    IFolder binFolder = connectorProject.getFolder("bin");
    binFolder.create(false, true, null);
    javaProject.setOutputLocation(binFolder.getFullPath(), null);

    // (2) Define the class path entries.
    IClasspathEntry[] entries = new IClasspathEntry[(requireProject.exists()) ? 3 : 2];

    // Add JRE System Library.
    entries[0] = JavaRuntime.getDefaultJREContainerEntry();

    // (3) We have not yet the source folder created:
    IFolder sourceFolder = connectorProject.getFolder("src");
    sourceFolder.create(false, true, null);

    // (4) Now the created source folder should be added to the class entries of the project, otherwise compilation will fail:
    IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(sourceFolder);
    entries[1] = JavaCore.newSourceEntry(root.getPath());

    // Add the extension project.
    if (requireProject.exists()) {
        entries[2] = JavaCore.newSourceEntry(requireProject.getFullPath());
    }

    // (5) Set the Java build path.
    javaProject.setRawClasspath(entries, null);

    // Convert this project to a plugin project.
    try {
        new ConvertProjectToPluginOperation(new IProject[] { connectorProject }, false).run(monitor);
    } catch (InvocationTargetException | InterruptedException e1) {
        // TODO Auto-generated catch block
        e1.printStackTrace();
    }

    // Generate META-INF/MANIFEST.MF
    IFile manifest = PDEProject.getManifest(connectorProject);
    String manifestContent = "Manifest-Version: 1.0\n" + "Bundle-ManifestVersion: 2\n" + "Bundle-Name: "
            + connectorProjectName + "\n" + "Bundle-SymbolicName: " + connectorProjectName
            + ";singleton:=true\n" + "Bundle-Version: 0.1.0.qualifier\n" + "Bundle-ClassPath: .\n"
            + "Bundle-Vendor: OCCIware\n" +
            //         "Bundle-Localization: plugin\n" + // FIXME generate plugin.properties
            "Bundle-RequiredExecutionEnvironment: JavaSE-1.7\n" + "Bundle-ActivationPolicy: lazy\n"
            + "Require-Bundle: org.slf4j.api,\n" + " org.occiware.clouddesigner.occi,\n" + " " + requireBundle
            + "\n" + "Export-Package: " + connectorProjectName + "\n";
    manifest.setContents(new ByteArrayInputStream(manifestContent.getBytes()), true, false, monitor);

    // Generate build.properties
    IFile build = PDEProject.getBuildProperties(connectorProject);
    String buildContent = "# Copyright (c) 2016 Inria\n" + "#\n"
            + "# All rights reserved. This program and the accompanying materials\n"
            + "# are made available under the terms of the Eclipse Public License v1.0\n"
            + "# which accompanies this distribution, and is available at\n"
            + "# http://www.eclipse.org/legal/epl-v10.html\n" + "#\n" + "# Contributors:\n"
            + "# - Philippe Merle <philippe.merle@inria.fr>\n" + "#\n" + "\n" + "source.. = src/\n"
            + "output.. = bin/\n" + "bin.includes = META-INF/, plugin.xml, .\n";
    build.setContents(new ByteArrayInputStream(buildContent.getBytes()), true, false, monitor);

    // Generate plugin.xml
    IFile pluginXML = PDEProject.getPluginXml(connectorProject);
    String pluginContent = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<?eclipse version=\"3.0\"?>\n"
            + "<!--\n" + "  Copyright (c) 2016 Inria\n" + "\n"
            + "  All rights reserved. This program and the accompanying materials\n"
            + "  are made available under the terms of the Eclipse Public License v1.0\n"
            + "  which accompanies this distribution, and is available at\n"
            + "  http://www.eclipse.org/legal/epl-v10.html\n" + "\n" + "  Contributors:\n"
            + "  - Philippe Merle <philippe.merle@inria.fr>\n" + "-->\n" + "<plugin>\n" + "\n"
            + "   <!-- Register the factory of this connector. -->\n"
            + "   <extension point=\"org.eclipse.emf.ecore.factory_override\">\n" + "      <factory\n"
            + "            uri=\"" + Occi2Ecore.convertOcciScheme2EcoreNamespace(extensionScheme) + "\"\n"
            + "            class=\"" + connectorProjectName + ".ConnectorFactory\"/>\n" + "   </extension>\n"
            + "\n" + "</plugin>\n";
    pluginXML.create(new ByteArrayInputStream(pluginContent.getBytes()), true, monitor);

    // Generate Java code for the connector.
    try {
        URI modelURI = URI.createURI(extensionFile, true);

        // Generate Java code for the connector.
        IContainer target = connectorProject.getFolder("src");
        // Compute the arguments of the generator.
        ArrayList<String> arguments = new ArrayList<String>();
        // The full name of the package to generate.
        arguments.add(connectorProjectName);
        // The full name of the package to extend.
        arguments.add(requireBundle);
        // Call the generator.
        GenerateAll generator = new GenerateAll(modelURI, target, arguments);
        generator.doGenerate(monitor);
    } catch (IOException e) {
        IStatus status = new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e);
        Activator.getDefault().getLog().log(status);
    } finally {
        connectorProject.refreshLocal(IResource.DEPTH_INFINITE, monitor);
    }
}

From source file:org.openlegacy.ide.eclipse.actions.AbstractGenerateCodeDialog.java

License:Open Source License

protected IPackageFragmentRoot chooseContainer() {
    IJavaElement initElement = getSourceFolder();
    Class<?>[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class };
    TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) {

        @Override/*from  w  ww. j  a  va2 s . co m*/
        public boolean isSelectedValid(Object element) {
            try {
                if (element instanceof IJavaProject) {
                    IJavaProject jproject = (IJavaProject) element;
                    IPath path = jproject.getProject().getFullPath();
                    return (jproject.findPackageFragmentRoot(path) != null);
                } else if (element instanceof IPackageFragmentRoot) {
                    return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
                }
                return true;
            } catch (JavaModelException e) {
            }
            return false;
        }
    };

    acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };
    ViewerFilter filter = new TypedViewerFilter(acceptedClasses) {

        @Override
        public boolean select(Viewer viewer, Object parent, Object element) {
            if (element instanceof IPackageFragmentRoot) {
                try {
                    return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
                } catch (JavaModelException e) {
                }
            } else if (element instanceof IJavaProject) {
                IJavaProject javaPr = (IJavaProject) element;
                return javaPr.isOpen();
            }

            return super.select(viewer, parent, element);
        }
    };

    StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider();
    ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT);
    ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider);
    dialog.setValidator(validator);
    dialog.setComparator(new JavaElementComparator());
    dialog.setTitle(""); //$NON-NLS-1$
    dialog.setMessage(""); //$NON-NLS-1$
    dialog.addFilter(filter);
    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
    dialog.setInput(JavaCore.create(root));
    dialog.setInitialSelection(initElement);
    dialog.setHelpAvailable(false);

    if (dialog.open() == Window.OK) {
        Object element = dialog.getFirstResult();
        if (element instanceof IJavaProject) {
            IJavaProject jproject = (IJavaProject) element;
            return jproject.getPackageFragmentRoot(jproject.getProject());
        } else if (element instanceof IPackageFragmentRoot) {
            return (IPackageFragmentRoot) element;
        }
        return null;
    }
    return null;
}

From source file:org.openlegacy.ide.eclipse.actions.AbstractGenerateModelDialog.java

License:Open Source License

@Override
protected void loadPrefrences() {

    EclipseDesignTimeExecuter designtimeExecuter = EclipseDesignTimeExecuter.instance();
    IProject project = getProject();/* w  ww  .  jav a2s. c  o m*/

    String prefrenceSourceFolderPath = designtimeExecuter.getPreference(project,
            PreferencesConstants.API_SOURCE_FOLDER);
    getSourceFolderPathText().setText(
            MessageFormat.format("{0}{1}{2}", project.getName(), File.separator, prefrenceSourceFolderPath)); //$NON-NLS-1$

    IJavaProject javaProject = JavaUtils.getJavaProjectFromIProject(project);
    setSourceFolder(javaProject.getPackageFragmentRoot(prefrenceSourceFolderPath));

    String prefrencePackage = designtimeExecuter.getPreference(project, PreferencesConstants.API_PACKAGE);
    if (prefrencePackage != null) {
        getPackageText().setText(prefrencePackage);
    }
    String useAjStr = designtimeExecuter.getPreference(project, PreferencesConstants.USE_AJ);
    if (useAjStr == null || useAjStr.equals("1")) {
        this.setUseAj(true);
    } else {
        this.setUseAj(false);
    }
    String generateTest = designtimeExecuter.getPreference(project, PreferencesConstants.GENERATE_TEST);
    if (generateTest == null || generateTest.equals("1")) {
        this.setGenerateTest(true);
    } else {
        this.setGenerateTest(false);
    }

}