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

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

Introduction

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

Prototype

boolean isExternal();

Source Link

Document

Returns whether this package fragment root is external to the workbench (that is, a local file), and has no underlying resource.

Usage

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 www  . j  a  v  a2 s .co  m*/
            }
        } 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.emf.mwe.internal.ui.debug.sourcelookup.SourceLookupUtil.java

License:Open Source License

private static IPackageFragmentRoot getPackageFragmentRoot(final IRuntimeClasspathEntry entry) {
    IResource resource = entry.getResource();

    if (resource != null) {
        // our own project jars...
        IProject project = resource.getProject();
        IJavaProject jp = JavaCore.create(project);
        if (project.isOpen() && jp.exists()) {
            IPackageFragmentRoot root = jp.getPackageFragmentRoot(resource);
            return root;
        }//from   www.  ja  v  a2  s  . c  om
    }

    if (model == null) {
        model = JavaCore.create(ResourcesPlugin.getWorkspace().getRoot());
    }

    // ... or external jars, that are registered in one of the open projects at runtime
    IPath reqPath = (resource == null ? new Path(entry.getLocation()) : entry.getPath());
    try {
        for (IJavaProject jp : model.getJavaProjects()) {
            if (jp.getProject().isOpen()) {
                for (IPackageFragmentRoot root : jp.getPackageFragmentRoots()) {
                    if (root.isExternal() && root.getPath().equals(reqPath)) {
                        return root;
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        Activator.logError(e); // should not occur
    }
    return null;
}

From source file:org.eclipse.incquery.patternlanguage.emf.ui.validation.GenmodelBasedEMFPatternLanguageJavaValidator.java

License:Open Source License

protected String getActualPackageName(PatternModel model) {
    URI fileURI = model.eResource().getURI();
    for (Pair<IStorage, IProject> storage : storage2UriMapper.getStorages(fileURI)) {
        if (storage.getFirst() instanceof IFile) {
            IPath fileWorkspacePath = storage.getFirst().getFullPath();
            IJavaProject javaProject = JavaCore.create(storage.getSecond());
            if (javaProject != null && javaProject.exists() && javaProject.isOpen()) {
                try {
                    for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                        if (!root.isArchive() && !root.isExternal()) {
                            IResource resource = root.getResource();
                            if (resource != null) {
                                IPath sourceFolderPath = resource.getFullPath();
                                if (sourceFolderPath.isPrefixOf(fileWorkspacePath)) {
                                    IPath classpathRelativePath = fileWorkspacePath
                                            .makeRelativeTo(sourceFolderPath);
                                    return classpathRelativePath.removeLastSegments(1).toString().replace("/",
                                            ".");
                                }/*from w ww .j  a  v a 2s .  co  m*/
                            }
                        }
                    }
                } catch (JavaModelException e) {
                    logger.error("Error resolving package declaration for Pattern Model", e);
                }
            }
        }
    }
    return null;
}

From source file:org.eclipse.jem.internal.beaninfo.core.BeanInfoCacheController.java

License:Open Source License

private RootIndex getRootIndex(IType type) {
    IPackageFragmentRoot root = (IPackageFragmentRoot) type.getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT);
    if (!root.isExternal()) {
        // So it is in a project. Get the project index.
        return getRootIndex(root, root.getJavaProject().getProject());
    } else {/*from w w w. ja va2 s.  c o m*/
        // It is an external jar (archive), so needs to come from main index, no project.
        return getRootIndex(root, null);
    }
}

From source file:org.eclipse.jem.internal.beaninfo.core.BeanInfoCacheController.java

License:Open Source License

private RootIndex createArchiveRootIndex(IPackageFragmentRoot rootArchive, String rootName, Index index) {
    long modStamp = IResource.NULL_STAMP;
    if (rootArchive.isExternal()) {
        modStamp = rootArchive.getPath().toFile().lastModified();
    } else {// w  w  w .  ja v  a2s  .c  om
        try {
            modStamp = rootArchive.getUnderlyingResource().getModificationStamp();
        } catch (JavaModelException e) {
            BeaninfoPlugin.getPlugin().getLogger().log(e);
        }
    }
    return new ArchiveRootIndex(rootName, modStamp, index);
}

From source file:org.eclipse.jpt.jaxb.ui.internal.filters.NonArchiveOrExternalElementFilter.java

License:Open Source License

@Override
public boolean select(Viewer viewer, Object parent, Object element) {
    if (element instanceof IPackageFragmentRoot) {
        IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        return !root.isArchive() && !root.isExternal();
    }/*from  w  ww .j a  v a  2  s.  c  o  m*/
    return true;
}

From source file:org.eclipse.jst.jsf.core.jsfappconfig.AnnotationPackageFragmentRoot.java

License:Open Source License

/**
 * Construct the wrapper around a package fragment root.
 * /*from  w  w w  .  ja v  a2s . co  m*/
 * @param root
 */
public AnnotationPackageFragmentRoot(IPackageFragmentRoot root) {
    if (root != null && root.exists() && !root.isExternal()) {
        this.root = root;
        IPath tempWebInfLibPath = null;
        IPath tempWebInfClassesPath = null;
        jProject = root.getJavaProject();
        if (jProject != null) {
            IProject project = jProject.getProject();
            if (project != null) {
                IVirtualFolder webContent = new DefaultVirtualComponentQuery().getWebContentFolder(project);
                if (webContent != null) {
                    IContainer webContentFolder = webContent.getUnderlyingFolder();
                    if (webContentFolder != null && webContentFolder.exists()) {
                        IPath webContentPath = webContentFolder.getFullPath();
                        if (webContentPath != null) {
                            tempWebInfLibPath = webContentPath.append("WEB-INF/lib"); //$NON-NLS-1$
                            tempWebInfClassesPath = webContentPath.append("WEB-INF/classes"); //$NON-NLS-1$
                        }
                    }
                }
            }
        }
        webInfClassesPath = tempWebInfClassesPath;
        webInfLibPath = tempWebInfLibPath;
    } else {
        this.root = null;
        this.webInfClassesPath = null;
        this.webInfLibPath = null;
        this.jProject = null;
    }
}

From source file:org.eclipse.jst.servlet.ui.internal.navigator.CompressedJavaProject.java

License:Open Source License

public List getNonExternalSourceFolders() {
    List nonExternalSourceFolders = null;
    IPackageFragmentRoot[] sourceFolders;
    try {//  ww  w.  j  av  a 2  s.c o  m
        IJavaProject jProject = JavaCore.create(project);
        sourceFolders = jProject.getPackageFragmentRoots();
        nonExternalSourceFolders = new ArrayList(Arrays.asList(sourceFolders));
        for (Iterator iter = nonExternalSourceFolders.iterator(); iter.hasNext();) {
            IPackageFragmentRoot root = (IPackageFragmentRoot) iter.next();
            if (root.isExternal() || root.isArchive() || root.getKind() == IPackageFragmentRoot.K_BINARY)
                iter.remove();
        }
    } catch (JavaModelException e) {
        ServletUIPlugin.log(e);
    }
    return nonExternalSourceFolders != null ? nonExternalSourceFolders : Collections.EMPTY_LIST;
}

From source file:org.eclipse.jst.servlet.ui.internal.navigator.WebJavaContentProvider.java

License:Open Source License

public Object getPipelinedParent(Object anObject, Object aSuggestedParent) {

    try {/*from  w w w. j ava  2 s. c o m*/
        if (anObject instanceof IPackageFragmentRoot) {
            IPackageFragmentRoot root = (IPackageFragmentRoot) anObject;
            if (!root.isExternal()) {
                if (aSuggestedParent instanceof IJavaProject) {
                    return getCompressedNode(((IJavaProject) aSuggestedParent).getProject());
                } else if (aSuggestedParent instanceof IProject
                        && ((IProject) aSuggestedParent).hasNature(JavaCore.NATURE_ID)
                        && JavaEEProjectUtilities.isDynamicWebProject((IProject) aSuggestedParent)) {
                    return getCompressedNode(((IProject) aSuggestedParent));
                }
            }
        } else if (INTERNAL_CONTAINER_CLASS.isInstance(anObject)) {
            if (aSuggestedParent instanceof IJavaProject) {
                return getCompressedNode(((IJavaProject) aSuggestedParent).getProject())
                        .getCompressedJavaLibraries();
            } else if (aSuggestedParent instanceof IProject
                    && ((IProject) aSuggestedParent).hasNature(JavaCore.NATURE_ID)
                    && JavaEEProjectUtilities.isDynamicWebProject((IProject) aSuggestedParent)) {
                return getCompressedNode(((IProject) aSuggestedParent)).getCompressedJavaLibraries();
            }
        }
    } catch (CoreException e) {
        ServletUIPlugin.log(e);
    }

    return null;
}

From source file:org.eclipse.jst.servlet.ui.internal.navigator.WebJavaContentProvider.java

License:Open Source License

private IPackageFragment locatePackageFragment(IFolder child) throws JavaModelException {
    IJavaElement elem = JavaCore.create(child);
    if (elem instanceof IPackageFragment) {
        IPackageFragment packageFragment = (IPackageFragment) elem;
        for (IJavaElement javaElem = packageFragment; javaElem != null; javaElem = javaElem.getParent()) {
            if (javaElem instanceof IPackageFragmentRoot) {
                IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) javaElem;
                if (!fragmentRoot.isReadOnly() && !fragmentRoot.isExternal()) {
                    return packageFragment;
                }/*w w  w  . ja  v  a 2s  . c o m*/
            }
        }
    }
    return null;
}