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

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

Introduction

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

Prototype

IPackageFragmentRoot findPackageFragmentRoot(IPath path) throws JavaModelException;

Source Link

Document

Returns the existing package fragment root on this project's classpath whose path matches the given (absolute) path, or null if one does not exist.

Usage

From source file:com.iw.plugins.spindle.core.util.CoreUtils.java

License:Mozilla Public License

/**
 * Returns true if the element is on the build path of the given project
 */// www.  java2 s  . c  o  m
public static boolean isOnBuildPath(IJavaProject jproject, IJavaElement element) throws JavaModelException {
    IPath rootPath;
    if (element.getElementType() == IJavaElement.JAVA_PROJECT) {
        rootPath = ((IJavaProject) element).getProject().getFullPath();
    } else {
        IPackageFragmentRoot root = getPackageFragmentRoot(element);
        if (root == null) {
            return false;
        }
        rootPath = root.getPath();
    }
    return jproject.findPackageFragmentRoot(rootPath) != null;
}

From source file:com.iw.plugins.spindle.ui.wizards.fields.ContainerDialogField.java

License:Mozilla Public License

private IPackageFragmentRoot chooseSourceContainer(IJavaElement initElement) {
    final IJavaProject thisProject = initElement.getJavaProject();
    Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class };
    ISelectionStatusValidator validator = new TypeSelectionValidator(acceptedClasses, false) {
        public boolean isSelectedValid(Object element) {
            try {
                boolean accepted = false;
                if (fThisProjectOnly) {
                    accepted = element instanceof IJavaProject && thisProject.equals((IJavaProject) element);
                } else {
                    accepted = element instanceof IJavaProject;
                }/* ww  w.  j a  va  2 s.c o m*/
                if (accepted) {

                    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) {
                UIPlugin.log(e); // just log, no ui in validation
            }
            return false;
        }
    };

    acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };
    ViewerFilter filter = new TypeFilter(acceptedClasses) {
        public boolean select(Viewer viewer, Object parent, Object element) {

            if (fThisProjectOnly && thisProject == null)
                return false;

            if (element instanceof IJavaProject) {

                return thisProject.equals((IJavaProject) element);

            }
            if (element instanceof IPackageFragmentRoot) {
                try {
                    return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
                } catch (JavaModelException e) {
                    UIPlugin.log(e);
                    return false;
                }
            }
            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.setSorter(new JavaElementSorter());
    dialog.setTitle(UIPlugin.getString(fName + ".ChooseSourceContainerDialog.title"));
    dialog.setMessage(UIPlugin.getString(fName + ".ChooseSourceContainerDialog.description"));
    dialog.addFilter(filter);
    dialog.setInput(JavaCore.create(fWorkspaceRoot));
    dialog.setInitialSelection(initElement);

    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:com.iw.plugins.spindle.wizards.fields.ContainerDialogField.java

License:Mozilla Public License

private IPackageFragmentRoot chooseSourceContainer(IJavaElement initElement) {

    final IJavaProject thisProject = initElement.getJavaProject();
    Class[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class };
    ISelectionStatusValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) {
        public boolean isSelectedValid(Object element) {
            try {
                boolean accepted = false;
                if (thisProjectOnly) {
                    accepted = element instanceof IJavaProject && thisProject.equals((IJavaProject) element);
                } else {
                    accepted = element instanceof IJavaProject;
                }//w w w  . j a va  2s.c om
                if (accepted) {

                    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) {
                TapestryPlugin.getDefault().logException(e); // just log, no ui in validation
            }
            return false;
        }
    };

    acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class };
    ViewerFilter filter = new TypedViewerFilter(acceptedClasses) {
        public boolean select(Viewer viewer, Object parent, Object element) {

            if (element instanceof IJavaProject) {

                return thisProject.equals((IJavaProject) element);

            }
            if (element instanceof IPackageFragmentRoot) {
                try {
                    return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE);
                } catch (JavaModelException e) {
                    TapestryPlugin.getDefault().logException(e);
                    return false;
                }
            }
            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.setSorter(new JavaElementSorter());
    dialog.setTitle(MessageUtil.getString(name + ".ChooseSourceContainerDialog.title"));
    dialog.setMessage(MessageUtil.getString(name + ".ChooseSourceContainerDialog.description"));
    dialog.addFilter(filter);
    dialog.setInput(JavaCore.create(workspaceRoot));
    dialog.setInitialSelection(initElement);

    if (dialog.open() == dialog.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:com.motorola.studio.android.wizards.buildingblocks.ElementTreeValidator.java

License:Apache License

@Override
public boolean isSelectedValid(Object element) {
    boolean isValid = false;
    try {/*  w  ww .j  a va2  s. co m*/
        if (element instanceof IJavaProject) {
            IJavaProject jproject = (IJavaProject) element;
            IPath path = jproject.getProject().getFullPath();
            isValid = (jproject.findPackageFragmentRoot(path) != null);
        } else if (element instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element;

            boolean isSrc = (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE);
            boolean isGen = packageFragmentRoot.getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER)
                    && (packageFragmentRoot.getParent() instanceof IJavaProject);

            isValid = isSrc && !isGen;
        } else {
            isValid = true;
        }
    } catch (JavaModelException e) {
        StudioLogger.error(ElementTreeValidator.class, e.getLocalizedMessage(), e);
    }
    return isValid;
}

From source file:com.mountainminds.eclemma.internal.core.analysis.TypeTraverser.java

License:Open Source License

/**
 * This methods checks whether the given package fragment root is still on the
 * classpath. This check is required as the user might change the classpath
 * and old coverage sessions afterwards (SF #1836551).
 * /*from  w w w  . j  a  va  2 s  .  c  o m*/
 * @param root
 *          package fragment root
 * @return true, if the classpath entry still exists
 * @throws JavaModelException
 */
private boolean isOnClasspath(IPackageFragmentRoot root) throws JavaModelException {
    IPath path = root.getPath();
    IJavaProject project = root.getJavaProject();
    return project.findPackageFragmentRoot(path) != null;
}

From source file:com.siteview.mde.internal.core.util.PDEJavaHelper.java

License:Open Source License

private static IPackageFragment getExternalPackageFragment(String packageName, String pluginID) {
    if (pluginID == null)
        return null;
    IMonitorModelBase base = null;/*from  w w w  .  jav  a 2 s . c om*/
    try {
        IMonitorModelBase plugin = MonitorRegistry.findModel(pluginID);
        if (plugin == null)
            return null;
        ImportPackageSpecification[] packages = plugin.getBundleDescription().getImportPackages();
        for (int i = 0; i < packages.length; i++)
            if (packages[i].getName().equals(packageName)) {
                ExportPackageDescription desc = (ExportPackageDescription) packages[i].getSupplier();
                if (desc != null)
                    base = MonitorRegistry.findModel(desc.getExporter().getSymbolicName());
                break;
            }
        if (base == null)
            return null;
        IResource res = base.getUnderlyingResource();
        if (res != null) {
            IJavaProject jp = JavaCore.create(res.getProject());
            if (jp != null)
                try {
                    IPackageFragmentRoot[] roots = jp.getAllPackageFragmentRoots();
                    for (int i = 0; i < roots.length; i++) {
                        IPackageFragment frag = roots[i].getPackageFragment(packageName);
                        if (frag.exists())
                            return frag;
                    }
                } catch (JavaModelException e) {
                }
        }
        IProject proj = MDECore.getWorkspace().getRoot()
                .getProject(SearchablePluginsManager.PROXY_PROJECT_NAME);
        if (proj == null)
            return searchWorkspaceForPackage(packageName, base);
        IJavaProject jp = JavaCore.create(proj);
        IPath path = new Path(base.getInstallLocation());
        // if model is in jar form
        if (!path.toFile().isDirectory()) {
            IPackageFragmentRoot root = jp.findPackageFragmentRoot(path);
            if (root != null) {
                IPackageFragment frag = root.getPackageFragment(packageName);
                if (frag.exists())
                    return frag;
            }
            // else model is in folder form, try to find model's libraries on filesystem
        } else {
            IMonitorLibrary[] libs = base.getMonitorBase().getLibraries();
            for (int i = 0; i < libs.length; i++) {
                if (IMonitorLibrary.RESOURCE.equals(libs[i].getType()))
                    continue;
                String libName = ClasspathUtilCore.expandLibraryName(libs[i].getName());
                IPackageFragmentRoot root = jp.findPackageFragmentRoot(path.append(libName));
                if (root != null) {
                    IPackageFragment frag = root.getPackageFragment(packageName);
                    if (frag.exists())
                        return frag;
                }
            }
        }
    } catch (JavaModelException e) {
    }
    return searchWorkspaceForPackage(packageName, base);
}

From source file:com.siteview.mde.internal.core.util.PDEJavaHelper.java

License:Open Source License

private static IPackageFragment searchWorkspaceForPackage(String packageName, IMonitorModelBase base) {
    IMonitorLibrary[] libs = base.getMonitorBase().getLibraries();
    ArrayList libPaths = new ArrayList();
    IPath path = new Path(base.getInstallLocation());
    if (libs.length == 0) {
        libPaths.add(path);//from   ww w.  j  a  va  2 s.co m
    }
    for (int i = 0; i < libs.length; i++) {
        if (IMonitorLibrary.RESOURCE.equals(libs[i].getType()))
            continue;
        String libName = ClasspathUtilCore.expandLibraryName(libs[i].getName());
        libPaths.add(path.append(libName));
    }
    IProject[] projects = MDECore.getWorkspace().getRoot().getProjects();
    for (int i = 0; i < projects.length; i++) {
        try {
            if (!projects[i].hasNature(JavaCore.NATURE_ID) || !projects[i].isOpen())
                continue;
            IJavaProject jp = JavaCore.create(projects[i]);
            ListIterator li = libPaths.listIterator();
            while (li.hasNext()) {
                IPackageFragmentRoot root = jp.findPackageFragmentRoot((IPath) li.next());
                if (root != null) {
                    IPackageFragment frag = root.getPackageFragment(packageName);
                    if (frag.exists())
                        return frag;
                }
            }
        } catch (CoreException e) {
        }
    }
    return null;
}

From source file:de.se_rwth.langeditor.util.ResourceLocator.java

License:Open Source License

private static Map<IPackageFragmentRoot, IProject> getPackageFragmentRootsOnModelPath() {
    Map<IPackageFragmentRoot, IProject> packageFragmentRoots = new HashMap<>();
    for (IProject project : ResourcesPlugin.getWorkspace().getRoot().getProjects()) {
        IJavaProject javaProject = JavaCore.create(project);
        try {//  w w w .j av  a  2  s .co m
            for (IClasspathEntry entry : getModelPathEntries(javaProject)) {
                Optional.ofNullable(javaProject.findPackageFragmentRoot(entry.getPath())).ifPresent(
                        packageFragmentRoot -> packageFragmentRoots.put(packageFragmentRoot, project));
            }
        } catch (JavaModelException e) {
            continue;
        }
    }
    return packageFragmentRoots;
}

From source file:eldaEditor.dialogs.TransitionPropertiesInputDialog.java

License:Open Source License

private List fillExceptionCombo(Combo exceptionComnbo) {
    List exceptionList = new ArrayList<String>();
    // creo il javaProject
    IJavaProject jProject = JavaCore.create(project);
    try {//from  ww w .  j  a v  a 2s .  c  om
        // recupero il jar di actiware
        IPackageFragmentRoot jar = jProject.findPackageFragmentRoot(JavaCore.getResolvedVariablePath(
                JavaCore.newVariableEntry(CodeGenerator.frameworkPath, null, null).getPath()));

        for (int i = 1; i < jar.getChildren().length; i++) {
            IPackageFragment jarFragment = (IPackageFragment) JavaCore
                    .create(jar.getChildren()[i].getHandleIdentifier());
            if (jarFragment.getElementName().startsWith("eldaframework.eldaevent.exception")) {
                IClassFile[] classArray = jarFragment.getClassFiles();
                for (int j = 0; j < classArray.length; j++) {
                    String name = classArray[j].getElementName().replaceAll(".class", "");
                    exceptionComnbo.add(name);
                    exceptionList.add(name);
                }
            }
        }
    } catch (JavaModelException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return exceptionList;
}

From source file:es.bsc.servicess.ide.PackagingUtils.java

License:Apache License

/** Build Service Packages. 
 * /*ww w.  j av a  2  s .c o  m*/
 * @param project Java Project where the service is built
 * @param pr_meta Project Metadata where the project is described
 * @param monitor Eclipse progress monitor
 * @throws Exception 
 */
public static void buildPackages(IJavaProject project, ProjectMetadata pr_meta, IProgressMonitor monitor)
        throws Exception {
    monitor.beginTask("Building project classes...", 100);
    IFolder output = project.getProject().getFolder(ProjectMetadata.OUTPUT_FOLDER);
    if (output == null || !output.exists()) {
        output.create(true, true, monitor);
    }
    project.getProject().build(IncrementalProjectBuilder.INCREMENTAL_BUILD, monitor);
    monitor.done();
    monitor.beginTask("Creating packages...", 2);
    // Create folders to store packages 
    IFolder packagesFolder = output.getFolder(ProjectMetadata.PACKAGES_FOLDER);
    if (packagesFolder != null && packagesFolder.exists()) {
        log.debug("Deleting current packages folder");
        packagesFolder.delete(true, monitor);
    }
    log.debug("Creating packages folder");
    packagesFolder.create(true, true, monitor);

    IFolder srcFolder = project.getProject().getFolder(pr_meta.getSourceDir());
    //Get parameters to perform the package creation
    //String[] packs = pr_meta.getPackages();
    String runtime = pr_meta.getRuntimeLocation();
    //TODO Chak if should be all orchestration or only internal
    String[] orchClasses = pr_meta.getAllOrchestrationClasses();
    String[] extOrchClasses = pr_meta.getExternalOrchestrationClasses();
    IPackageFragmentRoot source = project.findPackageFragmentRoot(srcFolder.getFullPath());
    IPackageFragmentRoot generated = project.findPackageFragmentRoot(
            project.getProject().getFolder(ProjectMetadata.GENERATED_FOLDER).getFullPath());
    if (source != null && source.exists()) {
        HashMap<String, ServiceElement> constraintsElements = CommonFormPage.getElements(orchClasses,
                ProjectMetadata.CORE_TYPE, project, pr_meta);
        //Create Core Element packages
        String[] corePacks = pr_meta.getPackagesWithCores();
        if (corePacks != null && corePacks.length > 0) {
            log.debug("Creating core elements packages");
            monitor.subTask("Create Core Element packages");
            monitor.beginTask("Creating packages...", corePacks.length);
            for (String p : corePacks) {
                String[] elements = pr_meta.getElementsInPackage(p);
                if (elements != null && elements.length > 0) {
                    PackagingUtils.createCorePackage(runtime, p, elements, pr_meta.getDependencies(elements),
                            constraintsElements, source, output, packagesFolder, monitor);
                }
                monitor.worked(1);
            }
            monitor.done();
        } else {
            log.warn("Warning: No core packages built");
            monitor.setCanceled(true);
            throw (new InvocationTargetException(new Exception("No packages built")));
        }
        if (orchClasses != null && orchClasses.length > 0) {
            String[] orchPacks = pr_meta.getPackagesWithOrchestration();

            if (orchPacks != null && orchPacks.length > 0) {
                log.debug("Creating orchestration elements packages");
                for (String p : orchPacks) {
                    String[] allElements = pr_meta.getElementsInPackage(p);
                    Map<String, List<String>> extElements = pr_meta
                            .getOrchestrationClassesAndElements(allElements, true);
                    Map<String, List<String>> intElements = pr_meta
                            .getOrchestrationClassesAndElements(allElements, false);
                    if (intElements != null && intElements.size() > 0) {
                        PackagingUtils.createInternalOrchestrationPackage(runtime,
                                PackagingUtils.getClasspath(project), p, intElements,
                                pr_meta.getDependencies(intElements), source, generated, output, packagesFolder,
                                monitor, pr_meta.shouldBeWarFile(p));
                        monitor.done();
                    }
                    if (extElements != null && extElements.size() > 0) {
                        PackagingUtils.createExternalOrchestrationPackage(runtime,
                                PackagingUtils.getClasspath(project), p, extElements, source, generated, output,
                                packagesFolder, monitor, pr_meta);
                        monitor.done();
                    }
                }
            } else {
                log.debug("Creating all orchestration element package");
                // Create All Orchestration packages (front-end)
                String[] allElements = CommonFormPage.getOrchestrationElementsLabels(orchClasses, project,
                        pr_meta);
                Map<String, List<String>> extElements = pr_meta.getOrchestrationClassesAndElements(allElements,
                        true);
                Map<String, List<String>> intElements = pr_meta.getOrchestrationClassesAndElements(allElements,
                        false);
                if (intElements != null && intElements.size() > 0) {
                    PackagingUtils.createInternalOrchestrationPackage(runtime,
                            PackagingUtils.getClasspath(project), project.getProject().getName(), intElements,
                            pr_meta.getDependencies(intElements), source, generated, output, packagesFolder,
                            monitor, ProjectMetadata.shouldBeWarFile(pr_meta.getOrchestrationClassesTypes()));
                    monitor.done();
                }
                if (extElements != null && extElements.size() > 0) {
                    PackagingUtils.createExternalOrchestrationPackage(runtime,
                            PackagingUtils.getClasspath(project), project.getProject().getName(), extElements,
                            source, generated, output, packagesFolder, monitor, pr_meta);
                    monitor.done();
                }
            }
        } else {
            log.warn("Warning: No orchestration element packages built");
            monitor.setCanceled(true);
            throw (new InvocationTargetException(new Exception("No orchestration packages built")));
        }

    } else {
        log.error("Source dir not found");
        monitor.setCanceled(true);
        throw (new InvocationTargetException(
                new Exception("Source dir " + srcFolder.getFullPath() + " not found")));
    }
}