List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getKind
int getKind() throws JavaModelException;
From source file:net.rim.ejde.internal.util.ProjectUtils.java
License:Open Source License
/** * Locates all the source folders represented by type IPackageFragmentRoot.K_SOURCE for the given project. * * @param project/*from w w w . jav a 2s .c o m*/ * The IProject to search for source folders. * @return An IPackageFragmentRoot array containing each K_SOURCE fragment found for the given project. */ public static IPackageFragmentRoot[] getProjectSourceFolders(IProject project) { IJavaProject iJavaProject = JavaCore.create(project); ArrayList<IPackageFragmentRoot> sourceRoots = new ArrayList<IPackageFragmentRoot>(); if (iJavaProject.exists() && iJavaProject.isOpen()) { try { IPackageFragmentRoot[] roots = iJavaProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot root : roots) { if (IPackageFragmentRoot.K_SOURCE == root.getKind()) { sourceRoots.add(root); } } } catch (JavaModelException e) { logger.error("findProjectSources: Could not retrieve project sources:", e); //$NON-NLS-1$ return new IPackageFragmentRoot[0]; } } return sourceRoots.toArray(new IPackageFragmentRoot[sourceRoots.size()]); }
From source file:nz.ac.massey.cs.barrio.srcgraphbuilder.ExtractDependencyGraphJob.java
License:Apache License
@Override protected IStatus run(IProgressMonitor monitor) { try {/* w w w . j a v a2s . co m*/ int SCALE = 100000; monitor.beginTask("extracting dependency graph from Java project", SCALE); monitor.subTask("gathering classes"); try { for (IJavaElement e : project.getChildren()) { //System.out.println("child"+e+" - "+e.getClass()); if (e instanceof IPackageFragmentRoot) { // sources IPackageFragmentRoot pfr = (IPackageFragmentRoot) e; if (pfr.getKind() == pfr.K_SOURCE) { ContainerRef c = new ContainerRef(); c.setSourceContainer(true); c.setName(pfr.getElementName()); c.setArchive(pfr.isArchive()); this.containers.add(c); gatherSources(c, pfr); // System.out.println("Added container " + c.getName() + " - contains " + c.getClassCount() + " sources"); } else if (pfr.getKind() == pfr.K_BINARY) { ContainerRef c = new ContainerRef(); c.setSourceContainer(false); c.setName(pfr.getElementName()); this.containers.add(c); gatherBinaries(c, pfr); // System.out.println("Added container " + c.getName() + " - contains " + c.getClassCount() + " bin classes"); } else { System.err.println("Unhandled Java element type: " + e); } } } } catch (Exception x) { x.printStackTrace(); } // STEP2 - parse sources monitor.worked((int) (0.08 * SCALE)); monitor.subTask("parsing classes"); List<PackageRef> packages = new ArrayList<PackageRef>(); for (ContainerRef c : containers) { if (c.isSourceContainer()) { for (PackageRef p : c.getPackages()) { if (p.getClassCount() > 0) packages.add(p); } } } monitor.internalWorked((int) (0.1 * SCALE)); int delta = (int) (SCALE * 0.5 / packages.size()); for (PackageRef p : packages) { monitor.subTask("parsing classes in package " + p.getName()); monitor.worked(delta); for (ClassRef c : p.getClasses()) { SourceRef src = (SourceRef) c; ExtractTypeInfoVisitor v = new ExtractTypeInfoVisitor(src); ASTParser parser = ASTParser.newParser(AST.JLS3); parser.setSource(src.getCompilationUnit()); parser.setResolveBindings(false); ASTNode node = parser.createAST(null); node.accept(v); } } // STEP3 - resolve references for (PackageRef p : packages) { monitor.subTask("resolving references " + p.getName()); monitor.worked(delta); // add inner classes List<ClassRef> classlist = new ArrayList<ClassRef>(); // to avoid concurrent modification exception classlist.addAll(p.getClasses()); for (ClassRef c : classlist) { addInnerClasses((SourceRef) c, p); } // resolve references for (ClassRef c : p.getClasses()) { SourceRef src = (SourceRef) c; resolveReferences(src); } } // STEP5: testing for (ContainerRef c : containers) { if (c.hasTestCases()) c.test(); } // STEP6 export graph monitor.subTask("exporting dependency graph"); exportGraph(); monitor.done(); return Status.OK_STATUS; } finally { } }
From source file:org.apache.felix.sigil.eclipse.ui.internal.editors.project.ProjectLabelProvider.java
License:Apache License
public Image getImage(Object element) { Image result = null;/*from ww w . jav a2s .c om*/ if (element instanceof ISigilBundle || element instanceof IRequiredBundle || element instanceof IBundleModelElement) { result = findBundle(); } else if (element instanceof IPackageImport) { if (checker != null) { result = checker.isSatisfied((IPackageImport) element) ? findPackage() : findPackageError(); } else { result = findPackage(); } } else if (element instanceof IPackageExport) { result = findPackage(); } else if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; try { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { result = findPackage(); } else { result = findBundle(); } } catch (JavaModelException e) { SigilCore.error("Failed to inspect package fragment root", e); } } else if (element instanceof IClasspathEntry) { result = findPackage(); } return result; }
From source file:org.apache.felix.sigil.eclipse.ui.util.ModelLabelProvider.java
License:Apache License
public Image getImage(Object element) { boolean unresolved = (unresolvedElements == null) ? false : unresolvedElements.contains(element); if (element instanceof ISigilBundle || element instanceof IBundleModelElement) { return findBundle(); } else if (element instanceof IRequiredBundle) { boolean optional = ((IRequiredBundle) element).isOptional(); return findRequiredBundle(optional, unresolved); } else if (element instanceof IPackageImport) { boolean optional = ((IPackageImport) element).isOptional(); return findPackageImport(optional, unresolved); } else if (element instanceof IPackageExport) { return findPackageExport(); } else if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; try {/*from www. ja v a2 s . co m*/ if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { return findPackage(); } else { return findBundle(); } } catch (JavaModelException e) { SigilCore.error("Failed to inspect package fragment root", e); } } else if (element instanceof IClasspathEntry) { return findPackage(); } else if (element instanceof IBundleRepository) { IBundleRepository rep = (IBundleRepository) element; IRepositoryModel config = SigilCore.getRepositoryModel(rep); return config.getType().getIcon(); } else if (element instanceof Throwable) { return PlatformUI.getWorkbench().getSharedImages().getImage(ISharedImages.IMG_OBJS_ERROR_TSK); } return null; }
From source file:org.apache.felix.sigil.ui.eclipse.ui.util.ModelLabelProvider.java
License:Apache License
public Image getImage(Object element) { boolean unresolved = (unresolvedElements == null) ? false : unresolvedElements.contains(element); if (element instanceof ISigilBundle || element instanceof IBundleModelElement) { return findBundle(); } else if (element instanceof IRequiredBundle) { boolean optional = ((IRequiredBundle) element).isOptional(); return findRequiredBundle(optional, unresolved); } else if (element instanceof IPackageImport) { boolean optional = ((IPackageImport) element).isOptional(); return findPackageImport(optional, unresolved); } else if (element instanceof IPackageExport) { return findPackageExport(); } else if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; try {/* w w w.j ava 2s . c o m*/ if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { return findPackage(); } else { return findBundle(); } } catch (JavaModelException e) { SigilCore.error("Failed to inspect package fragment root", e); } } else if (element instanceof IClasspathEntry) { return findPackage(); } if (element instanceof IBundleRepository) { IBundleRepository rep = (IBundleRepository) element; IRepositoryModel config = SigilCore.getRepositoryConfiguration().findRepository(rep.getId()); return config.getType().getIcon(); } return null; }
From source file:org.codehaus.groovy.eclipse.launchers.GroovyConsoleLineTracker.java
License:Apache License
/** * @param groovyFileName// w w w.j a v a 2 s. co m * @return * @throws JavaModelException */ private IFile[] searchForFileInLaunchConfig(String groovyFileName) throws JavaModelException { List<IFile> files = new LinkedList<IFile>(); IJavaProject[] projects = JavaModelManager.getJavaModelManager().getJavaModel().getJavaProjects(); for (IJavaProject javaProject : projects) { if (GroovyNature.hasGroovyNature(javaProject.getProject())) { for (IPackageFragmentRoot root : javaProject.getAllPackageFragmentRoots()) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IResource resource = root.getResource(); if (resource.isAccessible() && resource.getType() != IResource.FILE) { IFile file = ((IContainer) resource).getFile(new Path(groovyFileName)); if (file.isAccessible()) { files.add(file); } } } } } } return files.toArray(new IFile[files.size()]); }
From source file:org.eclim.plugin.jdt.command.src.NewCommand.java
License:Open Source License
@Override public Object execute(CommandLine commandLine) throws Exception { String projectName = commandLine.getValue(Options.PROJECT_OPTION); String type = commandLine.getValue(Options.TYPE_OPTION); String name = commandLine.getValue(Options.NAME_OPTION); String srcRoot = commandLine.getValue(Options.ROOT_OPTION); // handle someone typing a file path instead of a fully qualified class name if (name.endsWith(".java")) { name = name.substring(0, name.length() - 5); }/* w ww .j a v a2 s .c om*/ name = name.replace('/', '.'); int classStart = name.lastIndexOf('.'); final String packageName = classStart >= 0 ? name.substring(0, classStart) : name; final String typeName = classStart >= 0 ? name.substring(classStart + 1) : name; final String fileName = typeName + ".java"; IJavaProject javaProject = JavaUtils.getJavaProject(projectName); ArrayList<IPackageFragmentRoot> roots = new ArrayList<IPackageFragmentRoot>(); // find all roots the requested package is found in. for (IPackageFragment f : javaProject.getPackageFragments()) { if (f.getElementName().equals(packageName)) { IJavaElement parent = f.getParent(); while (parent != null) { if (parent instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) parent; if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { roots.add(root); } break; } parent = parent.getParent(); } } } // the package isn't found in any roots if (roots.size() == 0) { // no root supplied, so we have to add all src roots to a list for the // user to choose from. for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { roots.add(root); } } } // still no source roots, so we have to fail if (roots.size() == 0) { throw new RuntimeException("No project source directories found."); } if (roots.size() > 1) { // user chosen root supplied, so grab that one. if (srcRoot != null) { roots.clear(); for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE && getPath(root).equals(srcRoot)) { roots.add(root); break; } } if (roots.size() == 0) { throw new RuntimeException("Unable to find project source directory: " + srcRoot); } } if (roots.size() > 1) { ArrayList<String> srcRoots = new ArrayList<String>(); for (IPackageFragmentRoot root : roots) { srcRoots.add(getPath(root)); } return srcRoots; } } IPackageFragmentRoot root = roots.get(0); IPackageFragment fragment = root.createPackageFragment(packageName, false, null); // locate the to-be created file File fragmentPath = fragment.getUnderlyingResource().getLocation().toFile(); final File file = new File(fragmentPath, fileName); // make sure eclipse is up to date, in case the user // deleted the file outside of eclipse's knowledge fragment.getUnderlyingResource().refreshLocal(IResource.DEPTH_ONE, new NullProgressMonitor()); // create! final String content = String.format(TEMPLATE, packageName, getType(type), typeName); // NB: If we delete the file outside of Eclipse' // awareness, it will whine if we then try to // recreate it. So, if we *know* the file doesn't // exist, force it. ICompilationUnit unit = fragment.createCompilationUnit(fileName, content, false, new NullProgressMonitor()); if (unit == null || !file.exists()) { throw new RuntimeException("Could not create " + file); } JavaUtils.format(unit, CodeFormatter.K_COMPILATION_UNIT, 0, unit.getBuffer().getLength()); return file.getAbsolutePath(); }
From source file:org.eclipse.ajdt.core.tests.model.AspectJMemberElementTest.java
License:Open Source License
public void testGetSignature() throws Exception { IPackageFragmentRoot[] roots = jProject.getAllPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { doVisit(root);/* w w w .ja v a2s . c om*/ } } }
From source file:org.eclipse.ajdt.internal.ui.ajdocexport.AJdocOptionsManager.java
License:Open Source License
private boolean containsCompilationUnits(IPackageFragmentRoot root) throws JavaModelException { if (root.getKind() != IPackageFragmentRoot.K_SOURCE) { return false; }/*from ww w. j av a2s .c om*/ IJavaElement[] elements = root.getChildren(); for (int i = 0; i < elements.length; i++) { if (elements[i] instanceof IPackageFragment) { IPackageFragment fragment = (IPackageFragment) elements[i]; if (containsCompilationUnits(fragment)) { return true; } } } return false; }
From source file:org.eclipse.ajdt.internal.ui.ajdocexport.AJdocTreeWizardPage.java
License:Open Source License
private IPath[] getSourcePath(IJavaProject[] projects) { HashSet res = new HashSet(); //loops through all projects and gets a list if of thier sourpaths for (int k = 0; k < projects.length; k++) { IJavaProject iJavaProject = projects[k]; try {/* ww w . j av a 2s. c o m*/ IPackageFragmentRoot[] roots = iJavaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot curr = roots[i]; if (curr.getKind() == IPackageFragmentRoot.K_SOURCE) { IResource resource = curr.getResource(); if (resource != null) { IPath p = resource.getLocation(); if (p != null) { res.add(p); } } } } } catch (JavaModelException e) { JavaPlugin.log(e); } } return (IPath[]) res.toArray(new IPath[res.size()]); }