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

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

Introduction

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

Prototype

int K_BINARY

To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY.

Click Source Link

Document

Kind constant for a binary path root.

Usage

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

License:Open Source License

/**
 * @see IActionDelegate#selectionChanged(IAction, ISelection)
 *///  w  w w.j  a  v a2  s. c  om
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.pde.launching.PDESourcePathProvider.java

License:Open Source License

/**
 * Adds runtime classpath entries for binary package fragment roots contained within
 * the project/*from w  w w .  j a v  a 2 s .  co  m*/
 * 
 * @param jProject
 *          the Java project whose roots are to be enumerated
 * @param all
 *          a list of accumulated runtime classpath entries
 * @throws CoreException
 *          if unable to evaluate the package fragment roots
 */
private void addBinaryPackageFragmentRoots(IJavaProject jProject, List<IRuntimeClasspathEntry> all)
        throws CoreException {
    IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots();
    for (int j = 0; j < roots.length; j++) {
        if (roots[j].getKind() == IPackageFragmentRoot.K_BINARY && !PDEJavaHelper.isJRELibrary(roots[j])) {
            IRuntimeClasspathEntry rte = JavaRuntime.newArchiveRuntimeClasspathEntry(roots[j].getPath());
            IPath path = roots[j].getSourceAttachmentPath();
            if (path != null) {
                rte.setSourceAttachmentPath(path);
                rte.setSourceAttachmentRootPath(roots[j].getSourceAttachmentRootPath());
            }
            if (!all.contains(rte))
                all.add(rte);
        }
    }

}

From source file:org.eclipse.virgo.ide.manifest.internal.core.validation.rules.ExportPackageRule.java

License:Open Source License

private void validateExportPackage(BundleManifestHeader header, ManifestElement element,
        BundleManifestValidationContext context) {
    boolean found = false;
    try {//  ww  w.j  a va  2 s  . co m
        IPackageFragmentRoot[] roots = JdtUtils.getJavaProject(context.getRootElement().getElementResource())
                .getPackageFragmentRoots();

        for (IPackageFragmentRoot root : roots) {
            int kind = root.getKind();
            if (kind == IPackageFragmentRoot.K_SOURCE
                    || (kind == IPackageFragmentRoot.K_BINARY && !root.isExternal())) {
                IJavaElement[] javaElements = root.getChildren();
                for (int j = 0; j < javaElements.length; j++)
                    if (javaElements[j] instanceof IPackageFragment) {
                        IPackageFragment fragment = (IPackageFragment) javaElements[j];
                        String name = fragment.getElementName();
                        if (name.length() == 0) {
                            name = ".";
                        }
                        if (fragment.containsJavaResources() || fragment.getNonJavaResources().length > 0) {
                            if (name.equals(element.getValue())) {
                                found = true;
                            }
                        }
                    }
            }
        }
    } catch (JavaModelException e) {
    }

    // if we actually have packages to add
    if (!found) {
        context.warning("MISSING_PACKAGE_EXPORT", "Bundle does export non-existing package",
                header.getLineNumber() + 1);
    }
}

From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java

License:Open Source License

public static IJarEntryResource getJavaResourceFileFromBinary(IProject project, String jarNamePattern,
        String packageName, String fileName) {
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/*w  ww.j a v a2  s .  c om*/
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            IPackageFragmentRoot root = null;
            for (int i = 0; i < roots.length; i++) {
                root = roots[i];
                if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                    if (StringUtils.isEmpty(jarNamePattern)
                            || root.getElementName().startsWith(jarNamePattern)) {
                        Object[] nonJavaResources = null;
                        if (packageName != null) {
                            IPackageFragment fragment = root.getPackageFragment(packageName);
                            if (fragment != null) {
                                nonJavaResources = fragment.getNonJavaResources();
                            }
                        } else {
                            nonJavaResources = root.getNonJavaResources();
                        }
                        if (nonJavaResources != null) {
                            Object nonJavaResource = null;
                            for (int j = 0; j < nonJavaResources.length; j++) {
                                nonJavaResource = nonJavaResources[j];
                                if (nonJavaResource instanceof IJarEntryResource) {
                                    IJarEntryResource r = (IJarEntryResource) nonJavaResource;
                                    if (r.isFile() && fileName.equals(r.getName())) {
                                        return r;
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '"))
                    .append(project.getName()).append("'").toString(), e);
        }
    }
    return null;
}

From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java

License:Open Source License

public static IJarEntryResource[] getJavaResourcesFileFromBinary(IProject project, String jarNamePattern,
        String packageName, String fileName) {
    Collection<IJarEntryResource> files = new ArrayList<IJarEntryResource>();
    IJavaProject javaProject = getJavaProject(project);
    if (javaProject != null) {
        try {/*w ww .  ja v  a  2s .c om*/
            IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots();
            IPackageFragmentRoot root = null;
            for (int i = 0; i < roots.length; i++) {
                root = roots[i];
                if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                    if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().contains(jarNamePattern)) {
                        Object[] nonJavaResources = null;
                        if (packageName != null) {
                            IPackageFragment fragment = root.getPackageFragment(packageName);
                            if (fragment != null) {
                                nonJavaResources = fragment.getNonJavaResources();
                            }
                        } else {
                            nonJavaResources = root.getNonJavaResources();
                        }
                        if (nonJavaResources != null) {
                            Object nonJavaResource = null;
                            for (int j = 0; j < nonJavaResources.length; j++) {
                                nonJavaResource = nonJavaResources[j];
                                if (nonJavaResource instanceof IJarEntryResource) {
                                    IJarEntryResource r = (IJarEntryResource) nonJavaResource;
                                    if (r.isFile() && r.getName().contains(fileName)) {
                                        files.add(r);
                                    }
                                }
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '"))
                    .append(project.getName()).append("'").toString(), e);
        }
    }
    return files.toArray(new IJarEntryResource[files.size()]);
}

From source file:org.flowerplatform.editor.java.propertypage.remote.JavaProjectPropertyPageService.java

License:Open Source License

public Object getClasspathEntries(ServiceInvocationContext context, List<PathFragment> path) {
    @SuppressWarnings("unchecked")
    Pair<File, String> node = (Pair<File, String>) GenericTreeStatefulService.getNodeByPathFor(path, null);
    File projectFile = node.a;/*w ww.j a va  2s  .c  o  m*/
    File wd = ProjectsService.getInstance().getProjectToWorkingDirectoryAndIProjectMap().get(projectFile).a;

    IProject project = ProjectsService.getInstance().getProjectToWorkingDirectoryAndIProjectMap()
            .get(projectFile).b;
    IJavaProject javaProject = JavaCore.create(project);

    List<String> srcFolders = new ArrayList<String>();
    List<String> projects = new ArrayList<String>();
    List<String> libraries = new ArrayList<String>();

    try {
        if (!project.getFile(IJavaProject.CLASSPATH_FILE_NAME).exists()) {
            return null;
        }
        @SuppressWarnings("restriction")
        IClasspathEntry[][] entries = ((JavaProject) javaProject).readFileEntriesWithException(null);
        for (IClasspathEntry entry : entries[0]) {
            if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) {
                srcFolders.add(entry.getPath()
                        .makeRelativeTo(project.getFolder(ProjectsService.LINK_TO_PROJECT).getFullPath())
                        .toFile().getPath());
            } else if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) {
                File file = ProjectsService.getInstance().getFileFromProjectWrapperResource(
                        ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().lastSegment()));
                projects.add(CommonPlugin.getInstance().getPathRelativeToFile(file, wd));
            } else if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY
                    && entry.getContentKind() == IPackageFragmentRoot.K_BINARY) {
                IFile resource = ResourcesPlugin.getWorkspace().getRoot().getFile(entry.getPath());
                File file = ProjectsService.getInstance().getFileFromProjectWrapperResource(resource);
                libraries.add(CommonPlugin.getInstance().getPathRelativeToFile(file, wd));
            }
        }

    } catch (CoreException | IOException e) {
        logger.error("Exception thrown while getting java classpath entries for {}", project.getName(), e);
        return null;
    }
    return new Object[] { srcFolders, projects, libraries };
}

From source file:org.grails.ide.eclipse.explorer.providers.GrailsNavigatorFilter.java

License:Open Source License

public boolean select(Viewer arg0, Object parent, Object element) {
    if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = ((IPackageFragmentRoot) element);

        try {/*  w w  w.ja v  a  2  s.c  om*/
            // allow binary content like libraries
            if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                return true;
            }
        } catch (JavaModelException e) {
            GrailsCoreActivator.log(e);
        }
        IProject project = ((IPackageFragmentRoot) element).getJavaProject().getProject();
        Object immediateParent = getImmediateParent(parent);

        // Filter out all top-level level plugin dependency package
        // fragment roots. Filter in all other package fragment roots
        if (GrailsNature.isGrailsProject(project)
                && isGrailsDependencyPackageFragmentRoot(immediateParent, root)) {
            return false;
        }
    } else if (element instanceof IFolder) {
        IFolder folder = (IFolder) element;
        IProject project = folder.getProject();

        if (GrailsNature.isGrailsProject(project)) {
            // For reimages Grails file folders, if they are top level,
            // filter them in. If they are child of other folders, filter
            // them out
            Object immediateParent = getImmediateParent(parent);
            if (GrailsResourceUtil.isReimagedGrailsProjectFileFolder(folder)
                    && !(immediateParent instanceof IProject)) {
                return false;
            } else if (GrailsResourceUtil.isFilteredGrailsFolder(folder)) {
                return false;
            } else if (GrailsResourceUtil.isDefaultOutputFolder(folder)) {
                return false;
            } else {
                // Do a further check to see if any children may be filtered
                // out. If so, don't show the parent folder
                try {
                    IResource[] children = folder.members();
                    // Filtering algorithm:
                    // If a folder contains AT LEAST one filtered child, it
                    // means
                    // it's a Grails folder, in which case if all children
                    // are filtered
                    // ONLY then is the parent folder filtered out.
                    // Note to be careful not to filter out folders that
                    // contain anything
                    // else.
                    if (children != null) {
                        boolean filterOutParentFolder = false;
                        for (IResource child : children) {
                            if ((child instanceof IFolder) && (GrailsResourceUtil
                                    .isFilteredGrailsFolder((IFolder) child)
                                    || GrailsResourceUtil.isReimagedGrailsProjectFileFolder((IFolder) child))) {
                                // For now decide to filter out the parent
                                // folder
                                // as it contains filtered Grails content
                                filterOutParentFolder = true;
                            } else {
                                filterOutParentFolder = false;
                                break;
                            }
                        }
                        // All the children in the folder is filtered Grail
                        // content, therefore
                        // filter out the parent folder.
                        if (filterOutParentFolder) {
                            return false;
                        }
                    }
                } catch (CoreException e) {
                    GrailsCoreActivator.log(e);
                }
            }
        }
    } else if (element instanceof IPackageFragment) {
        IPackageFragment frag = (IPackageFragment) element;
        IJavaProject javaProject = frag.getJavaProject();
        if (GrailsNature.isGrailsProject(javaProject.getProject()) && frag.isDefaultPackage()) {
            IJavaElement javaParent = frag.getParent();
            if (javaParent instanceof IPackageFragmentRoot) {
                IPackageFragmentRoot root = (IPackageFragmentRoot) javaParent;
                // Only filter out the default package fragment from CONF
                // folder
                GrailsProjectStructureTypes type = GrailsResourceUtil.getGrailsContainerType(root);
                if (type == GrailsProjectStructureTypes.CONF) {
                    return false;
                }
            }
        }
    } else if (element instanceof ClassPathContainer) {
        //Hide toplevel classpath containers.
        if (parent instanceof TreePath) {
            TreePath parentPath = (TreePath) parent;
            if (parentPath.getLastSegment() instanceof IProject) {
                IProject project = (IProject) parentPath.getLastSegment();
                return !GrailsNature.isGrailsProject(project);
            }
        }
    }

    return true;
}

From source file:org.hibernate.eclipse.jdt.ui.internal.jpa.actions.JPAMapToolActionDelegate.java

License:Open Source License

protected boolean checkEnabled() {
    boolean enable = false;
    Object obj = refContextObject != null ? refContextObject.get() : null;
    if (obj == null) {
        return enable;
    }//from w ww  . j av a 2  s  . c o  m
    List<?> list = null;
    if (obj instanceof List) {
        list = (List<?>) obj;
    } else {
        list = Collections.singletonList(obj);
    }
    Iterator<?> it = list.iterator();
    while (it.hasNext() && !enable) {
        Object obj2 = it.next();
        if (!(obj2 instanceof IJavaElement)) {
            continue;
        }
        int kind = IPackageFragmentRoot.K_SOURCE;
        if (obj2 instanceof IPackageFragment) {
            IPackageFragment pf = (IPackageFragment) obj2;
            try {
                kind = pf.getKind();
            } catch (JavaModelException e) {
                kind = IPackageFragmentRoot.K_BINARY;
            }
        } else if (obj2 instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot pfr = (IPackageFragmentRoot) obj2;
            try {
                kind = pfr.getKind();
            } catch (JavaModelException e) {
                kind = IPackageFragmentRoot.K_BINARY;
            }
        }
        if (kind == IPackageFragmentRoot.K_SOURCE) {
            enable = true;
        }
    }
    if (!enable) {
        enable = isCUSelected();
    }
    return enable;
}

From source file:org.hibernate.eclipse.jdt.ui.internal.jpa.actions.JPAMapToolActor.java

License:Open Source License

/**
 * Check is the object in set of excluded elements
 * @param obj/*from www  .jav a2 s  .  co m*/
 * @return exclusion result
 */
protected boolean excludeElement(Object obj) {
    boolean res = false;
    if (obj instanceof JarPackageFragmentRoot) {
        res = true;
    } else if (obj instanceof ClassFile) {
        res = true;
    } else if (obj instanceof PackageFragment) {
        PackageFragment pf = (PackageFragment) obj;
        try {
            if (pf.getKind() == IPackageFragmentRoot.K_BINARY) {
                res = true;
            }
        } catch (JavaModelException e) {
            // ignore
        }
    } else if (obj instanceof ExternalPackageFragmentRoot) {
        res = true;
    }
    return res;
}

From source file:org.jboss.tools.as.sourcelookup.ui.actions.AttachSourcesActionDelegate.java

License:Open Source License

private void attachSource(IPackageFragmentRoot fragment, IPath newSourcePath) {
    try {/*from   w w  w . j a v  a  2 s .  c  o m*/
        if (fragment == null || fragment.getKind() != IPackageFragmentRoot.K_BINARY) {
            return;
        }
        IPath containerPath = null;
        IJavaProject jproject = fragment.getJavaProject();
        IClasspathEntry entry = fragment.getRawClasspathEntry();
        if (entry == null) {
            entry = JavaCore.newLibraryEntry(fragment.getPath(), null, null);
        } else {
            if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) {
                containerPath = entry.getPath();
                ClasspathContainerInitializer initializer = JavaCore
                        .getClasspathContainerInitializer(containerPath.segment(0));
                IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, jproject);
                if (initializer == null || container == null) {
                    return;
                }
                IStatus status = initializer.getSourceAttachmentStatus(containerPath, jproject);
                if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_NOT_SUPPORTED) {
                    return;
                }
                if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY) {
                    return;
                }
                entry = JavaModelUtil.findEntryInContainer(container, fragment.getPath());
                if (entry == null) {
                    return;
                }
            }
        }
        IClasspathEntry entry1;
        CPListElement elem = CPListElement.createFromExisting(entry, null);
        elem.setAttribute(CPListElement.SOURCEATTACHMENT, newSourcePath);
        entry1 = elem.getClasspathEntry();
        if (entry1.equals(entry)) {
            return;
        }
        IClasspathEntry newEntry = entry1;
        String[] changedAttributes = { CPListElement.SOURCEATTACHMENT };
        BuildPathSupport.modifyClasspathEntry(null, newEntry, changedAttributes, jproject, containerPath,
                newEntry.getReferencingEntry() != null, new NullProgressMonitor());
    } catch (CoreException e) {
        // ignore
    }
}