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:com.motorola.studio.android.common.utilities.EclipseUtils.java

License:Apache License

/**
 * Gets the default package from project.
 * @param javaProject/* www  . jav a  2  s . com*/
 * @return the project's default package.
 * @throws JavaModelException
 */
public static IPackageFragment getDefaultPackageFragment(IJavaProject javaProject) throws JavaModelException {
    IPackageFragment pack = null;
    AndroidManifestFile manifest = null;

    if ((javaProject != null) && javaProject.isOpen()) {
        // First, tries to get the default package from the AndroidManifest.xml file
        try {
            manifest = AndroidProjectManifestFile.getFromProject(javaProject.getProject());
        } catch (AndroidException e) {
            // Do nothing
        } catch (CoreException e) {
            // Do nothing 
        }

        if (manifest != null) {
            String defaultPackage = manifest.getManifestNode().getPackageName();

            if ((defaultPackage != null) && (defaultPackage.trim().length() > 0)) {
                IPackageFragment[] allPacks = javaProject.getPackageFragments();

                if (allPacks != null) {
                    for (IPackageFragment frag : allPacks) {
                        if (frag.getElementName().equals(defaultPackage)) {
                            pack = frag;
                            break;
                        }
                    }
                }
            }
        }

        // If the default package could not get from the AndroidManifest.xml file, search for
        // one in the project
        if (pack == null) {
            IPackageFragment[] packs = javaProject.getPackageFragments();
            if (packs != null) {
                for (int i = 0; (i < packs.length) && (pack == null); i++) {
                    if (packs[i].getKind() != IPackageFragmentRoot.K_BINARY) {
                        if (!isInsideGenFolder(packs[i]) && !packs[i].isDefaultPackage()
                                && packs[i].getElementName().contains(".") && packs[i].exists()) //$NON-NLS-1$
                        {
                            pack = packs[i];
                            break;
                        }
                    }
                }
            }
        }
    }

    return pack;
}

From source file:com.mountainminds.eclemma.autoMerge.OldFileAnalyzer.java

License:Open Source License

private IResource getClassfilesLocation(IPackageFragmentRoot root) throws CoreException {

    // For binary roots the underlying resource directly points to class files:
    if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
        return root.getResource();
    }/*from   w  w  w  .ja v a2 s  .co m*/

    // For source roots we need to find the corresponding output folder:
    IPath path = root.getRawClasspathEntry().getOutputLocation();
    if (path == null) {
        path = root.getJavaProject().getOutputLocation();
    }
    return root.getResource().getWorkspace().getRoot().findMember(path);
}

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

License:Open Source License

private void processPackageFragment(ITypeVisitor visitor, IPackageFragment fragment, IProgressMonitor monitor)
        throws JavaModelException {
    switch (fragment.getKind()) {
    case IPackageFragmentRoot.K_SOURCE:
        final ICompilationUnit[] units = fragment.getCompilationUnits();
        monitor.beginTask("", units.length); //$NON-NLS-1$
        for (final ICompilationUnit unit : units) {
            if (monitor.isCanceled()) {
                break;
            }/* w w w  .  jav a2  s .co  m*/
            processCompilationUnit(visitor, unit, monitor);
            monitor.worked(1);
        }
        break;
    case IPackageFragmentRoot.K_BINARY:
        final IClassFile[] classfiles = fragment.getClassFiles();
        monitor.beginTask("", classfiles.length); //$NON-NLS-1$
        for (final IClassFile classfile : classfiles) {
            if (monitor.isCanceled()) {
                break;
            }
            processClassFile(visitor, classfile, monitor);
            monitor.worked(1);
        }
        break;
    }
    monitor.done();
}

From source file:com.mountainminds.eclemma.internal.core.instr.ClassFiles.java

License:Open Source License

/**
 * Create a new instance containing a single package fragment root with the
 * given class file location./*from   w w  w.  j av  a2s  .  co m*/
 * 
 * @param root
 *          package fragment root
 * @param location
 *          location of the class files
 * @throws JavaModelException
 *           thrown when a problem with the underlying Java model occures
 */
public ClassFiles(IPackageFragmentRoot root, IPath location) throws JavaModelException {
    this(new IPackageFragmentRoot[] { root }, location, root.getKind() == IPackageFragmentRoot.K_BINARY);
}

From source file:com.mountainminds.eclemma.internal.core.instr.ClassFiles.java

License:Open Source License

/**
 * Creates a new ClassFiles instance with the given package fragment root
 * added. Mixing source and binary package fragment roots will result in an
 * exception./*from w w w. j  a v  a2 s. co m*/
 * 
 * @param root
 *          the package fragment root to add
 * @return new instance
 * @throws JavaModelException
 *           thrown when a problem with the underlying Java model occures
 */
public ClassFiles addRoot(IPackageFragmentRoot root) throws JavaModelException {
    IPackageFragmentRoot[] newroots = new IPackageFragmentRoot[roots.length + 1];
    System.arraycopy(roots, 0, newroots, 0, roots.length);
    newroots[roots.length] = root;
    return new ClassFiles(newroots, location, binary && root.getKind() == IPackageFragmentRoot.K_BINARY);
}

From source file:com.mountainminds.eclemma.internal.ui.coverageview.CellTextConverter.java

License:Open Source License

private String getSimpleTextForJavaElement(Object element) {
    if (element instanceof IPackageFragmentRoot) {
        final IPackageFragmentRoot root = (IPackageFragmentRoot) element;
        // tweak label if the package fragment root is the project itself:
        if (root.getElementName().length() == 0) {
            element = root.getJavaProject();
        }//from  w  ww  . jav a 2s  .co m
        // shorten JAR references
        try {
            if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
                return root.getPath().lastSegment();
            }
        } catch (JavaModelException e) {
            EclEmmaUIPlugin.log(e);
        }
    }
    return workbenchLabelProvider.getText(element);
}

From source file:com.mountainminds.eclemma.internal.ui.ScopeViewer.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   w w  w .j a va2 s  .c o m*/
 * 
 * @param root
 *          package fragment root
 * @return label for the class path entry
 */
private static String getPathLabel(IPackageFragmentRoot root) {
    final IPath path = root.getPath();
    try {
        if (root.getKind() == IPackageFragmentRoot.K_BINARY) {
            return path.lastSegment();
        }
    } catch (JavaModelException e) {
        EclEmmaUIPlugin.log(e);
    }
    return path.removeFirstSegments(1).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// ww  w  . j a  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.siteview.mde.internal.core.builders.BundleErrorReporter.java

License:Open Source License

private void addProjectPackages(IProject proj) {
    try {//from w  w  w .j  a  v a2s  . c  om
        if (proj.hasNature(JavaCore.NATURE_ID)) {
            IJavaProject jp = JavaCore.create(proj);
            IPackageFragmentRoot[] roots = jp.getPackageFragmentRoots();
            for (int i = 0; i < roots.length; i++) {
                if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE
                        || (roots[i].getKind() == IPackageFragmentRoot.K_BINARY && !roots[i].isExternal())) {
                    IJavaElement[] children = roots[i].getChildren();
                    for (int j = 0; j < children.length; j++) {
                        IPackageFragment f = (IPackageFragment) children[j];
                        String name = f.getElementName();
                        if (name.equals("")) //$NON-NLS-1$
                            name = "."; //$NON-NLS-1$
                        if (f.hasChildren() || f.getNonJavaResources().length > 0)
                            fProjectPackages.add(name);
                    }
                }
            }
        }
    } catch (CoreException ce) {
    }
}

From source file:com.siteview.mde.internal.core.ClasspathComputer.java

License:Open Source License

private static void addSourceFolder(IBuildEntry buildEntry, IProject project, HashSet paths, ArrayList result)
        throws CoreException {
    String[] folders = buildEntry.getTokens();
    for (int j = 0; j < folders.length; j++) {
        String folder = folders[j];
        IPath path = project.getFullPath().append(folder);
        if (paths.add(path)) {
            if (project.findMember(folder) == null) {
                CoreUtility.createFolder(project.getFolder(folder));
            } else {
                IPackageFragmentRoot root = JavaCore.create(project).getPackageFragmentRoot(path.toString());
                if (root.exists() && root.getKind() == IPackageFragmentRoot.K_BINARY) {
                    result.add(root.getRawClasspathEntry());
                    continue;
                }/* ww  w  .j a v  a2 s . c om*/
            }
            result.add(JavaCore.newSourceEntry(path));
        }
    }
}