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

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

Introduction

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

Prototype

IJavaElement getParent();

Source Link

Document

Returns the element directly containing this element, or null if this element has no parent.

Usage

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  w w  . j  ava 2  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:net.rim.ejde.internal.util.ImportUtils.java

License:Open Source License

static private List<LinkBuffer> generateLinks(IJavaProject eclipseJavaProject, ResourcesBuffer buffer,
        Project legacyProject) {/*from   w w  w. j  a v a  2s  .  c  o  m*/
    Map<String, Set<File>> javaArtifacts = buffer.getJavaContener();
    Map<String, Set<File>> localeArtifacts = buffer.getlocaleContener();
    Set<File> nonPackageableFiles = buffer.getNonPackageContener();

    IPath drfpath = null, filePath = null;

    IFile eclipseFileHandle = null, fileHandle = null;

    IProject eclipseProject = eclipseJavaProject.getProject();
    IWorkspaceRoot workspaceRoot = eclipseProject.getWorkspace().getRoot();

    List<String> sources = net.rim.ejde.internal.legacy.Util.getSources(legacyProject);
    IPackageFragmentRoot[] packageFragmentRoots;
    IPackageFragment packageFragment;
    IFolder packageFolder;
    IResource resource, packageDirectory;
    List<LinkBuffer> linkBuffers = Collections.emptyList();
    try {
        // packageFragmentRoots =
        // eclipseJavaProject.getPackageFragmentRoots(); //!WARNING: it
        // seems this is buggy!!!!
        packageFragmentRoots = eclipseJavaProject.getAllPackageFragmentRoots();
        linkBuffers = new ArrayList<LinkBuffer>();
        String srcFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_SRC_FOLDE_INDEX];
        String resFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_RES_FOLDE_INDEX];
        String localeFolder = POTENTIAL_SOURCE_FOLDERS[PROJECT_LOCALE_FOLDE_INDEX];
        IJavaProject javaProject = null;
        for (IPackageFragmentRoot packageFragmentRoot : packageFragmentRoots) {
            javaProject = packageFragmentRoot.getParent().getJavaProject();
            if (javaProject == null || !javaProject.equals(eclipseJavaProject)) {
                // fixed DPI225325, we only care source folders in the
                // current project
                continue;
            }
            if (IPackageFragmentRoot.K_SOURCE == packageFragmentRoot.getKind()) {
                packageDirectory = packageFragmentRoot.getResource();

                if (null != packageDirectory) {
                    if (isResourceTargetFolder(packageDirectory)) {
                        if (IResource.FOLDER == packageDirectory.getType()) {
                            // handle resource files which are not java, rrh
                            // and rrc
                            if (resFolder.equalsIgnoreCase(packageDirectory.getName())) {
                                packageFragment = packageFragmentRoot.createPackageFragment(StringUtils.EMPTY,
                                        true, new NullProgressMonitor());
                                packageFolder = (IFolder) packageFragment.getResource();

                                for (File file : nonPackageableFiles) {
                                    filePath = new Path(file.getAbsolutePath());

                                    if (canIgnoreFile(filePath, eclipseJavaProject)) {
                                        continue;
                                    }

                                    // drfpath = PackageUtils.resolvePathForFile( filePath, legacyProjectPath,
                                    // legacyWorkspacePath ); // DPI222295
                                    try {
                                        drfpath = new Path(PackageUtils.getFilePackageString(filePath.toFile(),
                                                legacyProject)).append(filePath.lastSegment());
                                    } catch (CoreException e) {
                                        _log.error(e.getMessage());
                                        drfpath = new Path(IConstants.EMPTY_STRING);
                                    }

                                    if (drfpath.segmentCount() > 1) {
                                        if (sources.contains(drfpath.segment(0))) {
                                            drfpath = drfpath.removeFirstSegments(1);
                                        }

                                        drfpath = assureFolderPath(packageFolder, drfpath);
                                    }

                                    fileHandle = createFileHandle(packageFolder, drfpath.toOSString());

                                    resource = eclipseProject.findMember(
                                            PackageUtils.deResolve(filePath, eclipseProject.getLocation()));

                                    if (resource != null)
                                        eclipseFileHandle = workspaceRoot.getFile(resource.getFullPath());
                                    else
                                        eclipseFileHandle = workspaceRoot
                                                .getFile(eclipseProject.getFullPath().append(drfpath));

                                    if (!fileHandle.equals(eclipseFileHandle)) {
                                        linkBuffers.add(new LinkBuffer(fileHandle, filePath));
                                    }
                                }
                            }
                            if (srcFolder.equalsIgnoreCase(packageDirectory.getName())
                                    || srcFolder.equalsIgnoreCase(packageDirectory.getName())) { // All
                                linkPackagableFiles(javaProject, packageFragmentRoot, javaArtifacts,
                                        linkBuffers);
                            }
                            if (localeFolder.equalsIgnoreCase(packageDirectory.getName())
                                    || localeFolder.equalsIgnoreCase(packageDirectory.getName())) {
                                linkPackagableFiles(javaProject, packageFragmentRoot, localeArtifacts,
                                        linkBuffers);
                            }
                        } else {
                            continue;
                        }
                    }
                }
            }
        }
    } catch (JavaModelException e1) {
        _log.error(e1.getMessage(), e1);
    }

    return linkBuffers;
}

From source file:org.eclipse.ajdt.internal.ui.wizards.exports.StandardJavaElementContentProvider.java

License:Open Source License

/**
 * Note: This method is for internal use only. Clients should not call this method.
 *///  w  ww.  jav a2s  .  com
protected Object skipProjectPackageFragmentRoot(IPackageFragmentRoot root) {
    if (isProjectPackageFragmentRoot(root))
        return root.getParent();
    return root;
}

From source file:org.eclipse.andmore.wizards.buildingblocks.ElementTreeValidator.java

License:Apache License

@Override
public boolean isSelectedValid(Object element) {
    boolean isValid = false;
    try {/*from   w ww. ja  v  a 2 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) {
        AndmoreLogger.error(ElementTreeValidator.class, e.getLocalizedMessage(), e);
    }
    return isValid;
}

From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java

License:Open Source License

private void appendFolderLabel(IPackageFragmentRoot root, long flags) {
    IResource resource = root.getResource();
    if (resource == null) {
        appendExternalArchiveLabel(root, flags);
        return;/*w  w w.  java 2s.c o m*/
    }

    boolean rootQualified = getFlag(flags, JavaElementLabels.ROOT_QUALIFIED);
    boolean referencedQualified = getFlag(flags, JavaElementLabels.REFERENCED_ROOT_POST_QUALIFIED)
            && isReferenced(root);
    if (rootQualified) {
        fBuffer.append(root.getPath().makeRelative().toString());
    } else {
        IPath projectRelativePath = resource.getProjectRelativePath();
        if (projectRelativePath.segmentCount() == 0) {
            fBuffer.append(resource.getName());
            referencedQualified = false;
        } else {
            fBuffer.append(projectRelativePath.toString());
        }

        int offset = fBuffer.length();
        if (referencedQualified) {
            fBuffer.append(JavaElementLabels.CONCAT_STRING);
            fBuffer.append(resource.getProject().getName());
        } else if (getFlag(flags, JavaElementLabels.ROOT_POST_QUALIFIED)) {
            fBuffer.append(JavaElementLabels.CONCAT_STRING);
            fBuffer.append(root.getParent().getElementName());
        } else {
            return;
        }
        if (getFlag(flags, JavaElementLabels.COLORIZE)) {
            fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE);
        }
    }
}

From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java

License:Open Source License

private void appendInternalArchiveLabel(IPackageFragmentRoot root, long flags) {
    IResource resource = root.getResource();
    boolean rootQualified = getFlag(flags, JavaElementLabels.ROOT_QUALIFIED);
    if (rootQualified) {
        fBuffer.append(root.getPath().makeRelative().toString());
    } else {/*from  w w  w. j a  va  2 s  .c o  m*/
        fBuffer.append(root.getElementName());
        int offset = fBuffer.length();
        boolean referencedPostQualified = getFlag(flags, JavaElementLabels.REFERENCED_ROOT_POST_QUALIFIED);
        if (referencedPostQualified && isReferenced(root)) {
            fBuffer.append(JavaElementLabels.CONCAT_STRING);
            fBuffer.append(resource.getParent().getFullPath().makeRelative().toString());
        } else if (getFlag(flags, JavaElementLabels.ROOT_POST_QUALIFIED)) {
            fBuffer.append(JavaElementLabels.CONCAT_STRING);
            fBuffer.append(root.getParent().getPath().makeRelative().toString());
        }
        if (referencedPostQualified) {
            try {
                IClasspathEntry referencingEntry = JavaModelUtil.getClasspathEntry(root).getReferencingEntry();
                if (referencingEntry != null) {
                    fBuffer.append(messages.JavaElementLabels_onClassPathOf(Name.CLASS_PATH.toString(),
                            referencingEntry.getPath().lastSegment()));
                }
            } catch (JavaModelException e) {
                // ignore
            }
        }
        if (getFlag(flags, JavaElementLabels.COLORIZE)) {
            fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE);
        }
    }
}

From source file:org.eclipse.edt.ide.ui.internal.externaltype.wizards.javatype.ExternalTypeFromJavaPage.java

License:Open Source License

private ClassLoader getURLClassLoader() {
    if (urlClassLoader == null) {
        List<URL> classPathURLs = new ArrayList<URL>();

        try {//Add Java class path.
            IPackageFragmentRoot[] roots = javaProject.getAllPackageFragmentRoots();

            for (IPackageFragmentRoot pRoot : roots) {
                IJavaProject refProject = pRoot.getParent().getJavaProject();
                IPath proRoot = refProject.getProject().getLocation();

                if (pRoot.isArchive() && pRoot.isExternal()) {
                    classPathURLs.add(pRoot.getResolvedClasspathEntry().getPath().toFile().toURI().toURL());
                } else if (pRoot.isArchive() && pRoot.getResource() != null) {
                    classPathURLs.add(proRoot.append(pRoot.getResource().getProjectRelativePath()).toFile()
                            .toURI().toURL());
                } else { //source folder
                    IPath outputRelPath = refProject.getOutputLocation().removeFirstSegments(1);
                    classPathURLs.add(proRoot.append(outputRelPath).toFile().toURI().toURL());
                }//from ww  w  . j  a v a2s .  com
            }
        } catch (Throwable ee) {
            ee.printStackTrace();
        }

        ClassLoader parent = Thread.currentThread().getContextClassLoader();
        URL[] urlPaths = new URL[classPathURLs.size()];
        urlClassLoader = new URLClassLoader(classPathURLs.toArray(urlPaths), parent);
    }

    return urlClassLoader;
}

From source file:org.eclipse.gmt.modisco.jm2t.modelconverter.javamodisco.internal.core.DiscovererFactory.java

License:Open Source License

public IExtendedDiscover createDiscoverer(IJavaElement element) {
    int type = element.getElementType();
    switch (type) {
    case IJavaElement.JAVA_PROJECT:
        return new ExtendedDiscoverJavaModelFromJavaProject((IJavaProject) element);
    case IJavaElement.COMPILATION_UNIT:
        return new ExtendedDiscoverJavaModelFromCompilationUnit((ICompilationUnit) element);
    case IJavaElement.CLASS_FILE:
        return new ExtendedDiscoverJavaModelFromClassFile((IClassFile) element);
    case IJavaElement.TYPE:
        return createDiscoverer(element.getParent());
    case IJavaElement.PACKAGE_FRAGMENT:
        IPackageFragment packageFragment = (IPackageFragment) element;
        break;/*from ww  w . j  a v a 2 s.c o  m*/
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        // src folder is selected
        IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element;
        return createDiscoverer(packageFragmentRoot.getParent());
    }
    return null;
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private IPackageExportDescription[] getPackageExports(IProject project) throws CoreException {
    IBundleProjectService bundleProjectService = LibraFacetPlugin.getDefault().getBundleProjectService();
    List<IPackageExportDescription> list = new ArrayList<IPackageExportDescription>();

    if (isJavaProject(project)) {
        IJavaProject javaProject = JavaCore.create(project);
        IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots();
        for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
            if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                    && fragmentRoot.getParent().equals(javaProject)) {
                IJavaElement[] elements = fragmentRoot.getChildren();
                for (IJavaElement element : elements) {
                    IPackageFragment fragment = (IPackageFragment) element;
                    if (fragment.containsJavaResources()) {
                        list.add(bundleProjectService.newPackageExport(fragment.getElementName(), null, true,
                                null));/*from  www.  j av a2s. co  m*/
                    }
                }
            }
        }
    }

    return list.toArray(new IPackageExportDescription[list.size()]);
}

From source file:org.eclipse.libra.facet.OSGiBundleFacetInstallDelegate.java

License:Open Source License

private IPath[] getJavaSourceFolderPaths(IJavaProject javaProject) throws JavaModelException {
    List<IPath> paths = new ArrayList<IPath>();

    IPackageFragmentRoot[] fragmentRoots = javaProject.getAllPackageFragmentRoots();
    for (IPackageFragmentRoot fragmentRoot : fragmentRoots) {
        if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE
                && fragmentRoot.getParent().equals(javaProject)) {
            paths.add(fragmentRoot.getPath());
        }/* w w w  .  j  ava 2s. co  m*/
    }

    return paths.toArray(new IPath[paths.size()]);
}