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

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

Introduction

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

Prototype

IJavaProject getJavaProject();

Source Link

Document

Returns the Java project this element is contained in, or null if this element is not contained in any Java project (for instance, the IJavaModel is not contained in any Java project).

Usage

From source file:org.eclipse.objectteams.otdt.internal.ui.wizards.NewTypeWizardPage.java

License:Open Source License

/**
 * Hook method that gets called when the list of super interface has changed. The method 
 * validates the super interfaces and returns the status of the validation.
 * <p>/* ww w  .  j  a  v  a  2  s .c  o m*/
 * Subclasses may extend this method to perform their own validation.
 * </p>
 * 
 * @return the status of the validation
 */
protected IStatus superInterfacesChanged() {
    StatusInfo status = new StatusInfo();

    IPackageFragmentRoot root = getPackageFragmentRoot();
    _superInterfacesDialogField.enableButton(0, root != null);

    if (root != null) {
        List<Object> elements = _superInterfacesDialogField.getElements();
        int nElements = elements.size();
        for (int i = 0; i < nElements; i++) {
            String intfname = ((InterfaceWrapper) elements.get(i)).interfaceName;
            Type type = TypeContextChecker.parseSuperInterface(intfname);
            if (type == null) {
                status.setError(Messages
                        .format(NewWizardMessages.NewTypeWizardPage_error_InvalidSuperInterfaceName, intfname));
                return status;
            }
            if (type instanceof ParameterizedType && !JavaModelUtil.is50OrHigher(root.getJavaProject())) {
                status.setError(Messages.format(
                        NewWizardMessages.NewTypeWizardPage_error_SuperInterfaceNotParameterized, intfname));
                return status;
            }
        }
    }
    return status;
}

From source file:org.eclipse.objectteams.otdt.tests.AbstractJavaModelTests.java

License:Open Source License

/**
 * Attaches a source zip to the given jar package fragment root.
 *//*from  ww w .  jav a  2s.c om*/
protected void attachSource(IPackageFragmentRoot root, String sourcePath, String sourceRoot)
        throws JavaModelException {
    IJavaProject javaProject = root.getJavaProject();
    IClasspathEntry[] entries = (IClasspathEntry[]) javaProject.getRawClasspath().clone();
    for (int i = 0; i < entries.length; i++) {
        IClasspathEntry entry = entries[i];
        if (entry.getPath().toOSString().toLowerCase().equals(root.getPath().toOSString().toLowerCase())) {
            entries[i] = JavaCore.newLibraryEntry(root.getPath(),
                    sourcePath == null ? null : new Path(sourcePath),
                    sourceRoot == null ? null : new Path(sourceRoot), false);
            break;
        }
    }
    javaProject.setRawClasspath(entries, null);
}

From source file:org.eclipse.pde.internal.ui.wizards.tools.ConvertJarsAction.java

License:Open Source License

/**
 * @see IActionDelegate#run(IAction)/* w  ww .jav a2s.  co m*/
 */
public void run(IAction action) {
    Map<Manifest, Object> filesMap = new HashMap<Manifest, Object>();
    Set<IProject> projectSelection = new HashSet<IProject>();
    Iterator<?> i = selection.toList().iterator();
    IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
    while (i.hasNext()) {
        IPackageFragmentRoot pfr = (IPackageFragmentRoot) i.next();
        JarFile file = null;
        try {
            projectSelection.add(pfr.getJavaProject().getProject());
            IClasspathEntry rawClasspathEntry = pfr.getRawClasspathEntry();
            IPath path = rawClasspathEntry.getPath();
            IFile iFile = root.getFile(path);
            if (iFile.exists()) {
                file = new JarFile(iFile.getLocation().toString());
                if (!filesMap.containsKey(file.getManifest())) {
                    filesMap.put(file.getManifest(), iFile);
                }
            } else {
                String pathStr = path.toString();
                file = new JarFile(pathStr);
                if (!filesMap.containsKey(file.getManifest())) {
                    filesMap.put(file.getManifest(), new File(file.getName()));
                }
            }
        } catch (Exception e) {
            PDEPlugin.logException(e);
        } finally {
            if (file != null) {
                try {
                    file.close();
                } catch (IOException e) {
                    PDEPlugin.logException(e);
                }
            }
        }
    }
    NewLibraryPluginProjectWizard wizard = new NewLibraryPluginProjectWizard(filesMap.values(),
            projectSelection);
    wizard.init(workbench, selection);
    WizardDialog dialog = new WizardDialog(Display.getDefault().getActiveShell(), wizard);
    dialog.open();
}

From source file:org.eclipse.pde.internal.ui.wizards.tools.ConvertJarsAction.java

License:Open Source License

/**
 * @see IActionDelegate#selectionChanged(IAction, ISelection)
 *///from w w w . j a  va2  s  .  co m
public void selectionChanged(IAction action, ISelection s) {
    boolean enabled = true;
    if (s instanceof IStructuredSelection) {
        selection = (IStructuredSelection) s;
        if (selection.size() == 0)
            return;
        Iterator<?> i = selection.iterator();
        while (i.hasNext()) {
            Object obj = i.next();
            if (obj instanceof IPackageFragmentRoot) {
                try {
                    IPackageFragmentRoot packageFragment = (IPackageFragmentRoot) obj;
                    if (packageFragment.getKind() == IPackageFragmentRoot.K_BINARY) {
                        if (PDE.hasPluginNature(packageFragment.getJavaProject().getProject())) {
                            if (packageFragment.getRawClasspathEntry()
                                    .getEntryKind() == IClasspathEntry.CPE_LIBRARY)
                                continue;
                        }
                    }
                } catch (JavaModelException e) {
                }
            }
            enabled = false;
            break;
        }
    } else {
        enabled = false;
        this.selection = null;
    }
    action.setEnabled(enabled);
}

From source file:org.eclipse.recommenders.internal.coordinates.rcp.EclipseDependencyListener.java

License:Open Source License

private Set<DependencyInfo> searchForAllDependenciesOfProject(final IJavaProject javaProject) {
    Set<DependencyInfo> dependencies = Sets.newHashSet();
    Set<IPackageFragmentRoot> jreRoots = jrePackageFragmentRoots.get(getDependencyInfoForProject(javaProject));
    try {//w ww. j av  a  2  s . c om
        for (final IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) {
            if (!jreRoots.contains(packageFragmentRoot)
                    && packageFragmentRoot instanceof JarPackageFragmentRoot) {
                DependencyInfo dependencyInfo = createDependencyInfoForJar(packageFragmentRoot);
                dependencies.add(dependencyInfo);
            } else if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                    && packageFragmentRoot.getJavaProject() != null) {
                DependencyInfo dependencyInfo = DependencyInfos
                        .createDependencyInfoForProject(packageFragmentRoot.getJavaProject());
                dependencies.add(dependencyInfo);
            }
        }
    } catch (JavaModelException e) {
        Logs.log(LogMessages.ERROR_FAILED_TO_SEARCH_FOR_PROJECT_DEPENDENCIES, e, javaProject);
    }
    return dependencies;
}

From source file:org.eclipse.recommenders.internal.models.rcp.ProjectCoordinateProvider.java

License:Open Source License

private Optional<DependencyInfo> extractDependencyInfo(IPackageFragmentRoot root) {
    if (root == null) {
        return absent();
    }//  ww w  . j a  va 2 s .  c  o m
    if (!root.isArchive()) {
        return extractDependencyInfo(root.getJavaProject());
    }
    File location = JdtUtils.getLocation(root).orNull();
    if (location == null) {
        return absent();
    }

    IJavaProject javaProject = root.getJavaProject();

    if (isPartOfJRE(root, javaProject)) {
        return DependencyInfos.createDependencyInfoForJre(javaProject);
    } else {
        DependencyInfo request = new DependencyInfo(location, JAR);
        return of(request);
    }
}

From source file:org.eclipse.virgo.ide.jdt.internal.ui.decoration.JdtClasspathContainerElementDecorator.java

License:Open Source License

/**
 * Decorates the given <code>element</code>.
 *//*  ww  w .j a v  a2s.c om*/
public void decorate(Object element, IDecoration decoration) {
    // package fragments are the first elements below the JAR file
    if (element instanceof IPackageFragment) {
        IPackageFragment packageFragment = (IPackageFragment) element;
        if (shouldDecorateImportedPackageFragment(packageFragment)) {
            // make light gray and lock icon decoration
            decoration.setForegroundColor(ColorMap.GRAY_LIGHT);
            decoration.addOverlay(JdtUiImages.DESC_OVR_LOCKED, IDecoration.TOP_LEFT);
        } else if (shouldDecorateExportedPackageFragment(packageFragment)) {
            decoration.addOverlay(JdtUiImages.DESC_OVR_EXPORTED, IDecoration.TOP_RIGHT);
        }
    }
    // jar package fragments roots; decorate those that come from a test dependency
    else if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        try {
            if (ServerClasspathContainer.CLASSPATH_CONTAINER_PATH.equals(root.getRawClasspathEntry().getPath())
                    && root.getJavaProject().getProject().isAccessible() && root.getJavaProject().isOpen()) {
                ServerClasspathContainer cpContainer = (ServerClasspathContainer) JavaCore
                        .getClasspathContainer(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH,
                                root.getJavaProject());
                if (cpContainer != null) {
                    for (IClasspathEntry entry : cpContainer.getClasspathEntries()) {
                        if (entry.getPath().equals(root.getPath()) && entry.getExtraAttributes() != null) {
                            for (IClasspathAttribute attribute : entry.getExtraAttributes()) {
                                if (attribute.getName()
                                        .equals(ServerClasspathContainer.TEST_CLASSPATH_ATTRIBUTE_VALUE)) {
                                    decoration.setForegroundColor(ColorMap.GRAY_LIGHT);
                                    decoration.addOverlay(JdtUiImages.DESC_OVR_LOCKED, IDecoration.TOP_LEFT);
                                }
                            }
                            break;
                        }
                    }
                }

            }
        } catch (JavaModelException e) {
        }
    }
    // class files represent a single type file in a JAR
    else if (element instanceof IClassFile) {
        IClassFile classFile = (IClassFile) element;
        if (classFile.getParent() instanceof IPackageFragment) {
            if (shouldDecorateImportedPackageFragment((IPackageFragment) classFile.getParent())) {
                // make light gray
                decoration.setForegroundColor(ColorMap.GRAY_LIGHT);
            }
        }
    }
    // decorate the class path container and add the originating target runtime
    else if (element instanceof ClassPathContainer) {
        ClassPathContainer container = (ClassPathContainer) element;
        if (container.getClasspathEntry().getPath().equals(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH)) {
            try {
                if (container.getJavaProject().getProject().isAccessible()
                        && container.getJavaProject().isOpen()) {
                    ServerClasspathContainer cpContainer = (ServerClasspathContainer) JavaCore
                            .getClasspathContainer(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH,
                                    container.getJavaProject());
                    decoration.addSuffix(cpContainer.getDescriptionSuffix());
                }
            } catch (JavaModelException e) {
            }
        }
    }
}

From source file:org.eclipse.virgo.ide.jdt.internal.ui.decoration.JdtClasspathContainerElementDecorator.java

License:Open Source License

/**
 * Checks if a given {@link IPackageFragment} is in the list of resolved imports for the current
 * {@link IJavaProject}./*from ww  w. j  ava2  s .  co m*/
 * 
 * @return true if the {@link IPackageFragment} is not accessible from the java project
 */
private boolean shouldDecorateImportedPackageFragment(IPackageFragment packageFragment) {
    IPackageFragmentRoot root = (IPackageFragmentRoot) packageFragment.getParent();
    IJavaProject javaProject = packageFragment.getJavaProject();

    if (!(javaProject.getProject().isAccessible() && javaProject.isOpen())) {
        return false;
    }

    // Only decorate in bundle projects
    if (!FacetUtils.isBundleProject(javaProject.getProject())) {
        return false;
    }

    try {
        IClasspathEntry entry = root.getRawClasspathEntry();
        if (entry.getPath().equals(ServerClasspathContainer.CLASSPATH_CONTAINER_PATH)) {
            if (!BundleManifestCorePlugin.getBundleManifestManager()
                    .getResolvedPackageImports(root.getJavaProject())
                    .contains(packageFragment.getElementName())) {
                return true;
            }
        }
    } catch (JavaModelException e) {
    }
    return false;
}

From source file:org.eclipse.xtext.ui.containers.JavaProjectsStateHelper.java

License:Open Source License

public Collection<URI> initContainedURIs(String containerHandle) {
    IJavaElement javaElement = JavaCore.create(containerHandle);
    if (javaElement instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) javaElement;
        IJavaProject javaProject = root.getJavaProject();
        if (!isAccessibleXtextProject(javaProject.getProject())) {
            return Collections.emptyList();
        }/*from w  ww.  ja  va2 s  .c om*/
        Map<URI, IStorage> entries = uriMapperExtensions.getAllEntries(root);
        return entries.keySet();
    }
    return Collections.emptyList();
}

From source file:org.eclipse.xtext.ui.containers.JavaProjectsStateHelper.java

License:Open Source License

protected List<String> getPackageFragmentRootHandles(IJavaProject project) {
    List<String> result = Lists.newArrayList();
    List<String> binaryAndNonLocalFragments = Lists.newArrayList();
    try {//from   ww  w.  j  a  v  a  2 s . c om
        IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots();
        result = Lists.newArrayListWithCapacity(roots.length);
        for (IPackageFragmentRoot root : roots) {
            if (root != null && !JavaRuntime.newDefaultJREContainerPath()
                    .isPrefixOf(root.getRawClasspathEntry().getPath())) {
                if (root.getKind() == IPackageFragmentRoot.K_SOURCE && project.equals(root.getJavaProject())) {
                    // treat local sources with higher priority
                    // see Java behavior in SameClassNamesTest
                    result.add(root.getHandleIdentifier());
                } else {
                    binaryAndNonLocalFragments.add(root.getHandleIdentifier());
                }
            }
        }
    } catch (JavaModelException e) {
        if (!e.isDoesNotExist()) {
            log.error("Cannot find rootHandles in project " + project.getProject().getName(), e);
        }
    }
    result.addAll(binaryAndNonLocalFragments);
    return result;
}