List of usage examples for org.eclipse.jdt.core JavaCore createClassFileFrom
public static IClassFile createClassFileFrom(IFile file)
.class
file. 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); } }