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:com.mountainminds.eclemma.internal.core.analysis.PackageFragementRootAnalyzer.java

License:Open Source License

AnalyzedNodes analyze(final IPackageFragmentRoot root) throws CoreException {
    if (root.isExternal()) {
        return analyzeExternal(root);
    } else {/*from www.j  av a 2 s.c  om*/
        return analyzeInternal(root);
    }
}

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

License:Open Source License

String getName(IPackageFragmentRoot root) {
    IPath path = root.getPath();//from w w w . j a  v a2  s  . c om
    if (!root.isExternal() && path.segmentCount() > 1) {
        return path.removeFirstSegments(1).toString();
    } else {
        return path.lastSegment();
    }
}

From source file:com.mountainminds.eclemma.internal.ui.viewers.ClassesViewer.java

License:Open Source License

/**
 * Calculates a label for the class path of the given package fragment root.
 * For external entries this is the full path, otherwise it is the project
 * relative path.//from   www  .  j  a v a2  s .com
 * 
 * @param root  package fragement root
 * @return  label for the class path entry
 */
private static String getPathLabel(IPackageFragmentRoot root) {
    IPath path = root.getPath();
    if (!root.isExternal()) {
        path = path.removeFirstSegments(1);
    }
    return path.toString();
}

From source file:com.redhat.ceylon.eclipse.code.explorer.JavaElementImageProvider.java

License:Open Source License

/**
 * Returns an image descriptor for a java element. This is the base image, no overlays.
 * @param element the element/*from www.  ja va 2  s  . c  om*/
 * @param renderFlags the image flags
 * @return returns the image descriptor
 */
public ImageDescriptor getBaseImageDescriptor(IJavaElement element, int renderFlags) {

    try {
        switch (element.getElementType()) {
        case IJavaElement.INITIALIZER:
            return JavaPluginImages.DESC_MISC_PRIVATE; // 23479
        case IJavaElement.METHOD: {
            IMethod method = (IMethod) element;
            IType declType = method.getDeclaringType();
            int flags = method.getFlags();
            if (declType.isEnum() && isDefaultFlag(flags) && method.isConstructor())
                return JavaPluginImages.DESC_MISC_PRIVATE;
            return getMethodImageDescriptor(JavaModelUtil.isInterfaceOrAnnotation(declType), flags);
        }
        case IJavaElement.FIELD: {
            IMember member = (IMember) element;
            IType declType = member.getDeclaringType();
            return getFieldImageDescriptor(JavaModelUtil.isInterfaceOrAnnotation(declType), member.getFlags());
        }
        case IJavaElement.LOCAL_VARIABLE:
            return JavaPluginImages.DESC_OBJS_LOCAL_VARIABLE;

        case IJavaElement.PACKAGE_DECLARATION:
            return JavaPluginImages.DESC_OBJS_PACKDECL;

        case IJavaElement.IMPORT_DECLARATION:
            return JavaPluginImages.DESC_OBJS_IMPDECL;

        case IJavaElement.IMPORT_CONTAINER:
            return JavaPluginImages.DESC_OBJS_IMPCONT;

        case IJavaElement.TYPE: {
            IType type = (IType) element;

            IType declType = type.getDeclaringType();
            boolean isInner = declType != null;
            boolean isInInterfaceOrAnnotation = isInner && JavaModelUtil.isInterfaceOrAnnotation(declType);
            return getTypeImageDescriptor(isInner, isInInterfaceOrAnnotation, type.getFlags(),
                    useLightIcons(renderFlags));
        }

        case IJavaElement.PACKAGE_FRAGMENT_ROOT: {
            IPackageFragmentRoot root = (IPackageFragmentRoot) element;
            IPath attach = root.getSourceAttachmentPath();
            if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                if (root.isArchive()) {
                    if (root.isExternal()) {
                        if (attach == null) {
                            return JavaPluginImages.DESC_OBJS_EXTJAR;
                        } else {
                            return JavaPluginImages.DESC_OBJS_EXTJAR_WSRC;
                        }
                    } else {
                        if (attach == null) {
                            return JavaPluginImages.DESC_OBJS_JAR;
                        } else {
                            return JavaPluginImages.DESC_OBJS_JAR_WSRC;
                        }
                    }
                } else {
                    if (attach == null) {
                        return JavaPluginImages.DESC_OBJS_CLASSFOLDER;
                    } else {
                        return JavaPluginImages.DESC_OBJS_CLASSFOLDER_WSRC;
                    }
                }
            } else {
                return JavaPluginImages.DESC_OBJS_PACKFRAG_ROOT;
            }
        }

        case IJavaElement.PACKAGE_FRAGMENT:
            return getPackageFragmentIcon(element);

        case IJavaElement.COMPILATION_UNIT:
            return JavaPluginImages.DESC_OBJS_CUNIT;

        case IJavaElement.CLASS_FILE:
            /* this is too expensive for large packages
            try {
               IClassFile cfile= (IClassFile)element;
               if (cfile.isClass())
             return JavaPluginImages.IMG_OBJS_CFILECLASS;
               return JavaPluginImages.IMG_OBJS_CFILEINT;
            } catch(JavaModelException e) {
               // fall through;
            }*/
            return JavaPluginImages.DESC_OBJS_CFILE;

        case IJavaElement.JAVA_PROJECT:
            IJavaProject jp = (IJavaProject) element;
            if (jp.getProject().isOpen()) {
                IProject project = jp.getProject();
                IWorkbenchAdapter adapter = (IWorkbenchAdapter) project.getAdapter(IWorkbenchAdapter.class);
                if (adapter != null) {
                    ImageDescriptor result = adapter.getImageDescriptor(project);
                    if (result != null)
                        return result;
                }
                return DESC_OBJ_PROJECT;
            }
            return DESC_OBJ_PROJECT_CLOSED;

        case IJavaElement.JAVA_MODEL:
            return JavaPluginImages.DESC_OBJS_JAVA_MODEL;

        case IJavaElement.TYPE_PARAMETER:
            return JavaPluginImages.DESC_OBJS_TYPEVARIABLE;

        case IJavaElement.ANNOTATION:
            return JavaPluginImages.DESC_OBJS_ANNOTATION;

        default:
            // ignore. Must be a new, yet unknown Java element
            // give an advanced IWorkbenchAdapter the chance
            IWorkbenchAdapter wbAdapter = (IWorkbenchAdapter) element.getAdapter(IWorkbenchAdapter.class);
            if (wbAdapter != null && !(wbAdapter instanceof JavaWorkbenchAdapter)) { // avoid recursion
                ImageDescriptor imageDescriptor = wbAdapter.getImageDescriptor(element);
                if (imageDescriptor != null) {
                    return imageDescriptor;
                }
            }
            return JavaPluginImages.DESC_OBJS_GHOST;
        }

    } catch (JavaModelException e) {
        if (e.isDoesNotExist())
            return JavaPluginImages.DESC_OBJS_UNKNOWN;
        JavaPlugin.log(e);
        return JavaPluginImages.DESC_OBJS_GHOST;
    }
}

From source file:com.redhat.ceylon.eclipse.core.model.JDTModuleManager.java

License:Open Source License

@Override
protected JDTModule createModule(List<String> moduleName, String version) {
    JDTModule module = null;//from   w  w  w .  ja  va 2  s  .c  om
    String moduleNameString = Util.getName(moduleName);
    List<IPackageFragmentRoot> roots = new ArrayList<IPackageFragmentRoot>();
    if (javaProject != null) {
        try {
            if (moduleNameString.equals(Module.DEFAULT_MODULE_NAME)) {
                // Add the list of source package fragment roots
                for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                    if (root.exists() && javaProject.isOnClasspath(root)) {
                        IClasspathEntry entry = root.getResolvedClasspathEntry();
                        if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE && !root.isExternal()) {
                            roots.add(root);
                        }
                    }
                }
            } else {
                for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                    if (root.exists() && javaProject.isOnClasspath(root)) {
                        if (JDKUtils.isJDKModule(moduleNameString)) {
                            // find the first package that exists in this root
                            for (String pkg : JDKUtils.getJDKPackagesByModule(moduleNameString)) {
                                if (root.getPackageFragment(pkg).exists()) {
                                    roots.add(root);
                                    break;
                                }
                            }
                        } else if (JDKUtils.isOracleJDKModule(moduleNameString)) {
                            // find the first package that exists in this root
                            for (String pkg : JDKUtils.getOracleJDKPackagesByModule(moduleNameString)) {
                                if (root.getPackageFragment(pkg).exists()) {
                                    roots.add(root);
                                    break;
                                }
                            }
                        } else if (!(root instanceof JarPackageFragmentRoot)
                                && !CeylonBuilder.isInCeylonClassesOutputFolder(root.getPath())) {
                            String packageToSearch = moduleNameString;
                            if (root.getPackageFragment(packageToSearch).exists()) {
                                roots.add(root);
                            }
                        }
                    }
                }
            }
        } catch (JavaModelException e) {
            e.printStackTrace();
        }
    }

    module = new JDTModule(this, roots);
    module.setName(moduleName);
    module.setVersion(version);
    setupIfJDKModule(module);
    return module;
}

From source file:com.redhat.ceylon.eclipse.core.model.loader.JDTModuleManager.java

License:Open Source License

@Override
protected Module createModule(List<String> moduleName, String version) {
    JDTModule module = null;/* w  ww.ja v a 2 s . c o  m*/
    String moduleNameString = Util.getName(moduleName);
    List<IPackageFragmentRoot> roots = new ArrayList<IPackageFragmentRoot>();
    try {
        if (moduleNameString.equals(Module.DEFAULT_MODULE_NAME)) {
            // Add the list of source package fragment roots
            for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                IClasspathEntry entry = root.getResolvedClasspathEntry();
                if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE && !root.isExternal()) {
                    roots.add(root);
                }
            }
        } else {
            for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) {
                if (JDKUtils.isJDKModule(moduleNameString)) {
                    // find the first package that exists in this root
                    for (String pkg : JDKUtils.getJDKPackagesByModule(moduleNameString)) {
                        if (root.getPackageFragment(pkg).exists()) {
                            roots.add(root);
                            break;
                        }
                    }
                } else if (JDKUtils.isOracleJDKModule(moduleNameString)) {
                    // find the first package that exists in this root
                    for (String pkg : JDKUtils.getOracleJDKPackagesByModule(moduleNameString)) {
                        if (root.getPackageFragment(pkg).exists()) {
                            roots.add(root);
                            break;
                        }
                    }
                } else if (!(root instanceof JarPackageFragmentRoot)) {
                    String packageToSearch = moduleNameString;
                    if (root.getPackageFragment(packageToSearch).exists()) {
                        roots.add(root);
                    }
                }
            }
        }
    } catch (JavaModelException e) {
        e.printStackTrace();
    }

    module = new JDTModule(this, roots);
    module.setName(moduleName);
    module.setVersion(version);
    setupIfJDKModule(module);
    return module;
}

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

License:Open Source License

public static boolean isImmediateRoot(IPackageFragmentRoot root) throws JavaModelException {
    int kind = root.getKind();
    return kind == IPackageFragmentRoot.K_SOURCE
            || (kind == IPackageFragmentRoot.K_BINARY && !root.isExternal());
}

From source file:edu.brown.cs.bubbles.bedrock.BedrockEditor.java

License:Open Source License

/********************************************************************************/

void handleDelete(String proj, String what, String path) throws BedrockException {
    IResource rs = null;//from  ww  w  . j a v  a2  s  .  c o  m
    FileData fd = null;
    IProject ip = our_plugin.getProjectManager().findProject(proj);
    IJavaProject ijp = JavaCore.create(ip);

    if (what.equals("PROJECT")) {
        if (ip == null)
            throw new BedrockException("Can't find project to delete");
        rs = ip;
    } else if (what.equals("FILE")) {
        fd = file_map.get(path);
        if (fd != null) {
            rs = fd.getSearchUnit().getResource();
        }
        if (rs == null)
            throw new BedrockException("Can't find file to delete");
    } else if (what.equals("CLASS")) {
        IType ityp = null;
        String bcls = baseClassName(path);
        String file = getFileFromClass(proj, bcls);
        fd = file_map.get(file);
        try {
            if (ijp != null)
                ityp = ijp.findType(bcls);
        } catch (JavaModelException e) {
        }
        if (ityp == null)
            throw new BedrockException("Can't find class to delete");
        rs = ityp.getResource();
    } else if (what.equals("PACKAGE")) {
        IPackageFragmentRoot ipfr = null;
        try {
            for (IPackageFragmentRoot pfr : ijp.getAllPackageFragmentRoots()) {
                try {
                    if (!pfr.isExternal() && !pfr.isArchive()
                            && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                        ipfr = pfr;
                        break;
                    }
                } catch (JavaModelException e) {
                }
            }
        } catch (JavaModelException e) {
            throw new BedrockException("Problem finding package root", e);
        }
        if (ipfr == null)
            throw new BedrockException("Can't find source fragment root");
        IPackageFragment ifr = ipfr.getPackageFragment(path);
        if (ifr == null)
            throw new BedrockException("Can't find package to delete");
        rs = ifr.getResource();
    }

    if (rs != null) {
        BedrockPlugin.logD("Delete resource " + rs);
        try {
            rs.delete(IResource.FORCE | IResource.KEEP_HISTORY | IResource.ALWAYS_DELETE_PROJECT_CONTENT,
                    new BedrockProgressMonitor(our_plugin, "Deleting " + path));
        } catch (CoreException e) {
            throw new BedrockException("Problem with delete", e);
        }
    }

    if (fd != null) {
        String file = fd.getFileName();
        file_map.remove(file);
        IvyXmlWriter xw = our_plugin.beginMessage("RESOURCE");
        xw.begin("DELTA");
        xw.field("KIND", "REMOVED");
        xw.field("PATH", file);
        xw.begin("RESOURCE");
        xw.field("LOCATION", file);
        xw.field("TYPE", "FILE");
        xw.field("PROJECT", proj);
        xw.end("RESOURCE");
        xw.end("DELTA");
        our_plugin.finishMessage(xw);
    }
}

From source file:edu.brown.cs.bubbles.bedrock.BedrockJava.java

License:Open Source License

private void addProjectElements(IJavaProject jp, Set<IJavaProject> done, List<IJavaElement> rslt) {
    if (done.contains(jp))
        return;//from w  w w .  ja v  a 2  s  . co m
    done.add(jp);

    try {
        for (IPackageFragmentRoot pfr : jp.getPackageFragmentRoots()) {
            if (!pfr.isArchive() && !pfr.isExternal() && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                rslt.add(pfr);
            }
        }
        for (String pn : jp.getRequiredProjectNames()) {
            try {
                IJavaProject rjp = getJavaProject(pn);
                if (rjp != null)
                    addProjectElements(rjp, done, rslt);
            } catch (BedrockException e) {
            }
        }
    } catch (JavaModelException e) {
    }
}

From source file:edu.brown.cs.bubbles.bedrock.BedrockProject.java

License:Open Source License

/********************************************************************************/

void createPackage(String proj, String pkg, boolean force, IvyXmlWriter xw) throws BedrockException {
    IProject ip = findProject(proj);/*from w w  w .ja v a  2s. c  om*/
    IJavaProject ijp = JavaCore.create(ip);

    IPackageFragmentRoot ipfr = null;
    try {
        for (IPackageFragmentRoot pfr : ijp.getAllPackageFragmentRoots()) {
            try {
                if (!pfr.isExternal() && !pfr.isArchive() && pfr.getKind() == IPackageFragmentRoot.K_SOURCE) {
                    ipfr = pfr;
                    break;
                }
            } catch (JavaModelException e) {
            }
        }
    } catch (JavaModelException e) {
        throw new BedrockException("Problem finding package roots: " + e, e);
    }

    if (ipfr == null)
        throw new BedrockException("Can't find source fragment root");

    IPackageFragment ifr = null;
    try {
        ifr = ipfr.createPackageFragment(pkg, force, null);
        ifr.save(null, force);
        ifr.open(null);
    } catch (JavaModelException e) {
        throw new BedrockException("Problem creating package: " + e, e);
    }

    xw.begin("PACKAGE");
    xw.field("NAME", ifr.getElementName());
    File f = BedrockUtil.getFileForPath(ifr.getPath(), ip);
    xw.field("PATH", f.getAbsolutePath());
    xw.end("PACKAGE");
}