Example usage for org.eclipse.jdt.core JavaCore createClassFileFrom

List of usage examples for org.eclipse.jdt.core JavaCore createClassFileFrom

Introduction

In this page you can find the example usage for org.eclipse.jdt.core JavaCore createClassFileFrom.

Prototype

public static IClassFile createClassFileFrom(IFile file) 

Source Link

Document

Creates and returns a class file element for the given .class file.

Usage

From source file:com.siteview.mde.internal.ui.search.dependencies.PackageFinder.java

License:Open Source License

private static void addClassFilesFromResource(IResource res, List classFiles) {
    if (res == null)
        return;//from w w  w .ja va 2 s . co  m
    Stack stack = new Stack();
    if (res instanceof IContainer) {
        stack.push(res);
        while (!stack.isEmpty()) {
            try {
                IResource[] children = ((IContainer) stack.pop()).members();
                for (int i = 0; i < children.length; i++)
                    if (children[i] instanceof IFile && "class".equals(children[i].getFileExtension())) { //$NON-NLS-1$
                        classFiles.add(JavaCore.createClassFileFrom((IFile) children[i]));
                    } else if (children[i] instanceof IContainer)
                        stack.push(children[i]);
            } catch (CoreException e) {
            }
        }
    } else if (res instanceof IFile) {
        if (res.getFileExtension().equals("jar") || res.getFileExtension().equals("zip")) { //$NON-NLS-1$ //$NON-NLS-2$
            IPackageFragmentRoot root = JavaCore.create(res.getProject()).getPackageFragmentRoot(res);
            if (root == null)
                return;
            try {
                IJavaElement[] children = root.getChildren();
                for (int i = 0; i < children.length; i++) {
                    if (children[i] instanceof IPackageFragment) {
                        IPackageFragment frag = (IPackageFragment) children[i];
                        IClassFile[] files = frag.getClassFiles();
                        for (int j = 0; j < files.length; j++)
                            classFiles.add(files[j]);
                    }
                }
            } catch (JavaModelException e) {
            }
        } else if (res.getFileExtension().equals("class")) //$NON-NLS-1$
            JavaCore.createClassFileFrom((IFile) res);
    }
}

From source file:org.eclipse.ant.internal.ui.datatransfer.SourceAnalyzer.java

License:Open Source License

/**
 * Find all classes that are required by given class file.
 * /*from  w  w w. j a  v a2  s  .  c  om*/
 * @param file
 *            a ".class" file
 * @return set of strings, each contains a full qualified class name (forward slash as package separator)
 */
public static Set<String> getRequiredClasses(IFile file) {
    Set<String> classes = new TreeSet<>();
    IClassFile classFile = JavaCore.createClassFileFrom(file);
    IClassFileReader reader = ToolFactory.createDefaultClassFileReader(classFile,
            IClassFileReader.CONSTANT_POOL);
    if (reader == null) {
        // class not compiled
        return classes;
    }
    IConstantPool pool = reader.getConstantPool();
    for (int i = 0; i < pool.getConstantPoolCount(); i++) {
        if (pool.getEntryKind(i) == IConstantPoolConstant.CONSTANT_Class) {
            IConstantPoolEntry entry = pool.decodeEntry(i);
            String classname = new String(entry.getClassInfoName());
            // don't return inner classes
            int index = classname.indexOf('$');
            if (index != -1) {
                classname = classname.substring(0, index);
            }
            classes.add(classname);
        }
    }
    return classes;
}

From source file:org.eclipse.pde.internal.ui.search.dependencies.PackageFinder.java

License:Open Source License

private static void addClassFilesFromResource(IResource res, List<IClassFile> classFiles) {
    if (res == null)
        return;/*w  ww.ja v a2s .c o m*/
    Stack<IResource> stack = new Stack<IResource>();
    if (res instanceof IContainer) {
        stack.push(res);
        while (!stack.isEmpty()) {
            try {
                IResource[] children = ((IContainer) stack.pop()).members();
                for (int i = 0; i < children.length; i++)
                    if (children[i] instanceof IFile && "class".equals(children[i].getFileExtension())) { //$NON-NLS-1$
                        classFiles.add(JavaCore.createClassFileFrom((IFile) children[i]));
                    } else if (children[i] instanceof IContainer)
                        stack.push(children[i]);
            } catch (CoreException e) {
            }
        }
    } else if (res instanceof IFile) {
        if (res.getFileExtension().equals("jar") || res.getFileExtension().equals("zip")) { //$NON-NLS-1$ //$NON-NLS-2$
            IPackageFragmentRoot root = JavaCore.create(res.getProject()).getPackageFragmentRoot(res);
            if (root == null)
                return;
            try {
                IJavaElement[] children = root.getChildren();
                for (int i = 0; i < children.length; i++) {
                    if (children[i] instanceof IPackageFragment) {
                        IPackageFragment frag = (IPackageFragment) children[i];
                        IClassFile[] files = frag.getClassFiles();
                        for (int j = 0; j < files.length; j++)
                            classFiles.add(files[j]);
                    }
                }
            } catch (JavaModelException e) {
            }
        } else if (res.getFileExtension().equals("class")) //$NON-NLS-1$
            JavaCore.createClassFileFrom((IFile) res);
    }
}