List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;
From source file:org.fusesource.ide.branding.wizards.NewCamelTestWizardPageOne.java
License:Open Source License
/** * Initialized the page with the current selection * //from w w w. j ava2s. co m * @param selection * The selection */ public void init(IStructuredSelection selection) { IJavaElement elem = getInitialJavaElement(selection); IJavaProject jproject = elem.getJavaProject(); IPackageFragmentRoot testRoot = null; if (selection != null && !selection.isEmpty()) { Object selectedElement = selection.getFirstElement(); IFile ifile = null; if (selectedElement instanceof IFile) { ifile = (IFile) selectedElement; } else if (selectedElement instanceof IAdaptable) { IAdaptable adaptable = (IAdaptable) selectedElement; ifile = (IFile) adaptable.getAdapter(IFile.class); } if (ifile != null) { setXmlFileUnderTest(ifile); } // now we determine the container for the test classes if (jproject != null && jproject.exists()) { try { IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { if (roots[i].getPath().toFile().getPath() .contains(String.format("src%stest%sjava", File.separator, File.separator))) { testRoot = roots[i]; break; } else if (roots[i].getPath().toFile().getPath() .contains(String.format("src%stest%sscala", File.separator, File.separator))) { testRoot = roots[i]; // we will prefer the src/test/java folder, so we don't break here and search for it } } } } catch (Exception ex) { Activator.getLogger().error(ex); } } } if (elem != null) { initContainerPage(elem); // if we found a suitable test class container then we set it here if (testRoot != null) { // set the container correctly setPackageFragmentRoot(testRoot, true); } IJavaProject project = elem.getJavaProject(); resourceContainer = project.getProject(); // evaluate the enclosing type IPackageFragment pack = (IPackageFragment) elem.getAncestor(IJavaElement.PACKAGE_FRAGMENT); if (pack != null) { setPackageFragment(pack, true); } else { File testFolderFile = project.getProject().getParent().getRawLocation() .append(getPackageFragmentRoot().getPath().makeRelative()).toFile(); File f = getBasePackage(testFolderFile); if (f != null && testRoot != null) { IPath p = new Path(f.getPath()); p = p.makeRelativeTo(project.getProject().getParent().getRawLocation() .append(getPackageFragmentRoot().getPath().makeRelative())); String name = ""; StringTokenizer strTok = new StringTokenizer(p.toOSString(), File.separator); while (strTok.hasMoreTokens()) { String tok = strTok.nextToken(); if (name.trim().length() > 0) { name += "."; } name += tok; } try { IPackageFragment pf = testRoot.createPackageFragment(name, true, new NullProgressMonitor()); setPackageFragment(pf, true); } catch (Exception ex) { Activator.getLogger().error(ex); } } } if (fXmlFileUnderTest == null) { try { // if we have no file selected yet, lets see if there's a // single one available List<IFile> files = ResourceModelUtils.filter(resourceContainer, new org.fusesource.ide.foundation.core.util.Filter<IFile>() { @Override public boolean matches(IFile file) { if (Objects.equal(file.getFileExtension(), "xml")) { return camelXmlMatcher.matches(file); } return false; } }); if (files.size() == 1) { setXmlFileUnderTest(files.get(0)); } } catch (Exception e) { Activator.getLogger().error("Failed to search for Camel XML files: " + e, e); } } } setJUnit4(true, true); updateStatus(getStatusList()); }
From source file:org.fusesource.ide.jvmmonitor.internal.ui.properties.cpu.actions.AddPackageDialog.java
License:Open Source License
/** * Gets the package fragments.//from w ww. j a va 2 s .co m * * @param javaModel * The java model * @return The package fragments */ private Object[] getPackageFragments(IJavaModel javaModel) { Set<String> packageElements = new HashSet<String>(); IJavaProject[] projects; try { projects = javaModel.getJavaProjects(); } catch (JavaModelException e) { Activator.log(IStatus.ERROR, Messages.getJavaModelFailedMsg, e); return new Object[0]; } for (IJavaProject project : projects) { if (EXTERNAL_PLUGIN_LIBRARIES.equals(project.getResource().getName())) { continue; } IPackageFragmentRoot[] packageFragmentRoots; try { packageFragmentRoots = project.getPackageFragmentRoots(); } catch (JavaModelException e) { continue; } for (IPackageFragmentRoot packageFragment : packageFragmentRoots) { try { addPackage(packageElements, packageFragment); } catch (JavaModelException e) { // do nothing } } } for (Object packageName : filteringPackages) { packageElements.remove(packageName); } return packageElements.toArray(new String[0]); }
From source file:org.grails.ide.eclipse.editor.gsp.translation.GSPTranslation.java
License:Open Source License
/** * Originally from ReconcileStepForJava. Creates an ICompilationUnit from the contents of the JSP document. * /*from ww w . j a v a2 s . co m*/ * @return an ICompilationUnit from the contents of the JSP document */ private ICompilationUnit createCompilationUnit() throws JavaModelException { IPackageFragment packageFragment = null; IJavaElement je = getJavaProject(); if (je == null || !je.exists()) return null; switch (je.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT: je = je.getParent(); // fall through case IJavaElement.PACKAGE_FRAGMENT_ROOT: IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) je; packageFragment = packageFragmentRoot.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH); break; case IJavaElement.JAVA_PROJECT: IJavaProject jProject = (IJavaProject) je; if (!jProject.exists()) { if (DEBUG) { System.out.println( "** Abort create working copy: cannot create working copy: JSP is not in a Java project"); //$NON-NLS-1$ } return null; } packageFragmentRoot = null; IPackageFragmentRoot[] packageFragmentRoots = jProject.getPackageFragmentRoots(); int i = 0; while (i < packageFragmentRoots.length) { if (!packageFragmentRoots[i].isArchive() && !packageFragmentRoots[i].isExternal()) { packageFragmentRoot = packageFragmentRoots[i]; break; } i++; } if (packageFragmentRoot == null) { if (DEBUG) { System.out.println( "** Abort create working copy: cannot create working copy: JSP is not in a Java project with source package fragment root"); //$NON-NLS-1$ } return null; } packageFragment = packageFragmentRoot.getPackageFragment(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH); break; default: return null; } // GRAILS CHANGE // create compilation unit with .groovy instead of .java file extension ICompilationUnit cu = packageFragment.getCompilationUnit(getClassname() + ".groovy") //$NON-NLS-1$ .getWorkingCopy(getWorkingCopyOwner(), getProgressMonitor()); // ICompilationUnit cu = packageFragment.getCompilationUnit(getClassname() + ".java").getWorkingCopy(getWorkingCopyOwner(), getProgressMonitor()); //$NON-NLS-1$ setContents(cu); // GRAILS CHANGE // need extra call to makeConsistent // https://issuetracker.springsource.com/browse/STS-3091#comment-79054 cu.makeConsistent(getProgressMonitor()); if (DEBUG) { System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); //$NON-NLS-1$ System.out.println("(+) JSPTranslation [" + this + "] finished creating CompilationUnit: " + cu); //$NON-NLS-1$ //$NON-NLS-2$ System.out.println("+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++"); //$NON-NLS-1$ } return cu; }
From source file:org.grails.ide.eclipse.explorer.providers.GrailsNavigatorContentProvider.java
License:Open Source License
public Object[] getChildren(Object parentElement) { if (parentElement instanceof IProject && GrailsNature.isGrailsProject((IProject) parentElement)) { IProject project = (IProject) parentElement; Collection<GrailsProjectStructureTypes> types = GrailsProjectStructureManager.getInstance() .getAllTopLevelLogicalFolders().values(); List<Object> topLevelFolders = new ArrayList<Object>(); GrailsFolderElementFactory factory = getFolderElementFactory(); for (GrailsProjectStructureTypes type : types) { ILogicalFolder element = factory.getElement(project, project.getFolder(new Path(type.getFolderName())), type); if (element != null) { topLevelFolders.add(element); }/*ww w . j av a 2 s .com*/ } //Add a logical folder that contains the classpath containers topLevelFolders.add(new GrailsClasspathContainersFolder(project)); // Now add the top level package fragment roots that are // non-dependency source folders IJavaProject javaProject = JavaCore.create(project); try { IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); if (roots != null) { for (IPackageFragmentRoot root : roots) { if (root.getRawClasspathEntry().getEntryKind() == IClasspathEntry.CPE_SOURCE && !GrailsResourceUtil.isGrailsDependencyPackageFragmentRoot(root)) { topLevelFolders.add(root); } } } } catch (JavaModelException e) { GrailsCoreActivator.log(e); } // Add the file folders that are reimaged Set<GrailsProjectStructureTypes> fileFolders = GrailsProjectStructureManager.getInstance() .getGrailsFileFolders(); if (fileFolders != null) { for (GrailsProjectStructureTypes type : fileFolders) { IFolder folder = project.getFolder(new Path(type.getFolderName())); if (folder != null && folder.exists()) { topLevelFolders.add(folder); } } } try { IResource[] children = project.members(); if (children != null) { for (IResource resource : children) { // Skip the linked folders that correspond to // Grails dependency package fragment roots if (!isLinkedDependencyPackageFragmentRoot(resource) && !isReimagedResource(resource)) { topLevelFolders.add(resource); } } } } catch (CoreException e) { GrailsCoreActivator.log(e); } return topLevelFolders.toArray(); } else if (parentElement instanceof ILogicalFolder) { ILogicalFolder element = (ILogicalFolder) parentElement; List<?> children = element.getChildren(); if (children != null) { return children.toArray(); } } else if (parentElement instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) parentElement; GrailsProjectStructureTypes type = GrailsResourceUtil.getGrailsContainerType(root); if (type == GrailsProjectStructureTypes.CONF) { try { IJavaElement[] children = root.getChildren(); if (children != null) { List<IJavaElement> elements = new ArrayList<IJavaElement>(); for (IJavaElement child : children) { IPackageFragment frag = (child instanceof IPackageFragment) ? (IPackageFragment) child : null; if (frag == null || !frag.isDefaultPackage()) { elements.add(child); } else { IJavaElement[] defaultChildren = frag.getChildren(); for (IJavaElement defaultChild : defaultChildren) { elements.add(defaultChild); } } } return elements.toArray(); } } catch (JavaModelException e) { GrailsCoreActivator.log(e); } } } return null; }
From source file:org.grails.ide.eclipse.refactoring.util.RefactoringUtils.java
License:Open Source License
/** * Creates a default 'search scope' to search for references that need updating in a Grails project. The default scope includes all * source folders in the Grails project that actually 'belong' to the project (i.e. all source folders, but excluding * the linked plugin source folders./* w w w.j av a 2 s . co m*/ * * @throws JavaModelException */ public static IJavaSearchScope getSearchScope(IJavaProject javaProject) throws JavaModelException { IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); List<IPackageFragmentRoot> srcFolders = new ArrayList<IPackageFragmentRoot>(); for (IPackageFragmentRoot root : roots) { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { if (!GrailsResourceUtil.isGrailsDependencyPackageFragmentRoot(root)) { srcFolders.add(root); // System.out.println(root.getPath()); } } } return SearchEngine.createJavaSearchScope(srcFolders.toArray(new IJavaElement[srcFolders.size()])); }
From source file:org.grails.ide.eclipse.ui.contentassist.util.BeansJavaCompletionUtils.java
License:Open Source License
private static IPackageFragment getPackageFragment(IJavaProject project, String prefix) throws JavaModelException { int dot = prefix.lastIndexOf('.'); if (dot > -1) { String packageName = prefix.substring(0, dot); for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { IPackageFragment p = root.getPackageFragment(packageName); if (p != null && p.exists()) { return p; }//from w ww . j a va 2 s . co m } IPackageFragment[] packages = project.getPackageFragments(); for (IPackageFragment p : packages) { if (p.getElementName().equals(packageName)) { return p; } } } else { for (IPackageFragmentRoot p : project.getAllPackageFragmentRoots()) { if (p.getKind() == IPackageFragmentRoot.K_SOURCE) { return p.getPackageFragment(""); } } } return project.getPackageFragments()[0]; }
From source file:org.gw4e.eclipse.facade.JDTManager.java
License:Open Source License
/** * Return a package fragment with the passed path * /*from w ww . ja v a 2s .co m*/ * @param project * @param path * @return * @throws JavaModelException */ public static IPackageFragmentRoot getPackageFragmentRoot(IProject project, IPath path) throws JavaModelException { IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getPath().equals(path)) return roots[i]; } return null; }
From source file:org.gw4e.eclipse.facade.JDTManager.java
License:Open Source License
public static IPackageFragmentRoot findPackageFragmentRoot(IProject project, IPath path) throws JavaModelException { IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getPath().isPrefixOf(path)) return roots[i]; }//from ww w .j a va 2s .c om return null; }
From source file:org.gw4e.eclipse.facade.JDTManager.java
License:Open Source License
public static IPath removePackageFragmentRoot(IProject project, IPath path) throws JavaModelException { IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getPath().isPrefixOf(path)) return path.makeRelativeTo(roots[i].getPath()); }/* w w w . j av a2 s .c o m*/ return null; }
From source file:org.gw4e.eclipse.facade.ResourceManager.java
License:Open Source License
/** * Return package fragment of the passed resource * /*from w w w . ja v a 2s. com*/ * @param project * @param path * @return * @throws JavaModelException */ public static IPackageFragmentRoot getPackageFragmentRoot(IProject project, IPackageFragment pkg) throws JavaModelException { IJavaProject jproject = JavaCore.create(project); IPackageFragmentRoot[] roots = jproject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; IPackageFragment pf = root.getPackageFragment(pkg.getElementName()); if (pf.equals(pkg)) return root; } return null; }