List of usage examples for org.eclipse.jdt.core IJavaProject getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException;
From source file:com.ecfeed.ui.editor.ModelEditor.java
License:Open Source License
@Override public IPackageFragmentRoot getPackageFragmentRoot() { if (!isProjectAvailable()) { return null; }/*from w ww .j a va2 s.co m*/ try { if (getProject().hasNature(JavaCore.NATURE_ID)) { IJavaProject javaProject = JavaCore.create(getProject()); IPath path = getPath(); if (javaProject != null) { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) { if (root.getPath().isPrefixOf(path)) { return root; } } } } } catch (CoreException e) { SystemLogger.logCatch(e.getMessage()); } return null; }
From source file:com.github.ko2ic.plugin.eclipse.taggen.core.ui.components.combo.OutputFolderCombo.java
License:Open Source License
public OutputFolderCombo(Composite parent, int style) { IWorkspace workspace = ResourcesPlugin.getWorkspace(); IWorkspaceRoot root = workspace.getRoot(); IProject[] projects = root.getProjects(); for (IProject project : projects) { try {// ww w. java2 s. c o m IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); for (IPackageFragmentRoot pRoot : roots) { if (pRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { outputFolders.add(pRoot.getPath().removeFirstSegments(1).toOSString()); } } } catch (JavaModelException e) { throw Throwables.propagate(new SystemException(e)); } } outputFolderCombo = new Combo(parent, style); }
From source file:com.google.gdt.eclipse.appengine.rpc.util.JavaUtils.java
License:Open Source License
/** * Get the source folder for this project. If there is a source folder called * "src" it will be returned. If not, the first source folder found will be * returned (or <code>null</code> if none is found). *//*from w w w .j av a 2 s.c om*/ public static IPackageFragmentRoot getSourcePackageFragmentRoot(IJavaProject javaProject) throws JavaModelException { IPackageFragmentRoot firstSourceFolder = null; for (IPackageFragmentRoot fragmentRoot : javaProject.getPackageFragmentRoots()) { if (fragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { // prefer "src" if (fragmentRoot.getElementName().equals("src")) { //$NON-NLS-1$ return fragmentRoot; } // cache first found if (firstSourceFolder != null) { firstSourceFolder = fragmentRoot; } } } // fall back on first return firstSourceFolder; }
From source file:com.google.gdt.eclipse.appengine.rpc.util.RequestFactoryUtils.java
License:Open Source License
/** * Find all the relevant request factory types in the project and populate the * given lists/hashmap//w ww .j ava2 s .c o m * * @param project IJavaProject * @param entities List<IType> * @param proxys List<IType> * @param requests HaspMap<String,ITYpe> * @throws JavaModelException */ public static void findAllTypes(IJavaProject project, List<IType> entities, List<IType> proxys, HashMap<String, IType> requests) throws JavaModelException { for (IPackageFragmentRoot pkgRoot : project.getPackageFragmentRoots()) { if (pkgRoot.isArchive()) { continue; } for (IJavaElement fragment : pkgRoot.getChildren()) { IJavaElement[] children = ((IPackageFragment) fragment).getChildren(); for (IJavaElement child : children) { if (child instanceof ICompilationUnit) { IType[] topLevelTypes = ((ICompilationUnit) child).getTypes(); for (IType t : topLevelTypes) { determineType(t, entities, proxys, requests); } } } } } }
From source file:com.google.gdt.eclipse.appengine.rpc.util.RequestFactoryUtils.java
License:Open Source License
/** * Find types in a project that satisfy a certain selection criteria * /*from w w w .j a va 2 s .c o m*/ * RPC_ENTITY : Find types annotated with the <code>@Entity</code> or * <code>@PersistenceCapable</code> annotations, less all framework-specific * entities (identified by {@link #isFrameworkClass(IType)}) * * RPC_PROXY : Find types that extend * com.google.web.bindery.requestfactory.shared.ValueProxy or * com.google.web.bindery.requestfactory.shared.EntityProxy * * RPC_REQUEST : Find types that extend * com.google.web.bindery.requestfactory.shared.RequestContext * */ public static List<IType> findTypes(IJavaProject project, RpcType type) throws JavaModelException { List<IType> types = new ArrayList<IType>(); for (IPackageFragmentRoot pkgRoot : project.getPackageFragmentRoots()) { if (pkgRoot.isArchive()) { continue; } for (IJavaElement elem : pkgRoot.getChildren()) { collectTypes(types, (IPackageFragment) elem, type); } } return types; }
From source file:com.google.gdt.eclipse.designer.actions.deploy.DeployModuleAction.java
License:Open Source License
/** * Returns ANT code for creating jar's for given project itself, coping its jar's from classpath * and calls itself for required projects. *//*w w w .j a v a2 s . c o m*/ private static String prepareJars(IProject project, String targetModulePath, boolean addRuntimeJars) throws Exception { String script = ""; // IJavaProject javaProject = JavaCore.create(project); IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); // add <jar> task for creating jar from project source and output folders { List<String> sourceLocations = Lists.newArrayList(); List<String> binaryLocations = Lists.newArrayList(); for (IPackageFragmentRoot packageFragmentRoot : roots) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { // add source location sourceLocations.add(packageFragmentRoot.getResource().getLocation().toPortableString()); // add output location { // prepare output location IPath location; { IClasspathEntry cpEntry = packageFragmentRoot.getRawClasspathEntry(); location = cpEntry.getOutputLocation(); if (location == null) { location = javaProject.getOutputLocation(); } } // add absolute location { // remove first segment (project) location = location.removeFirstSegments(1); // prepare absolute location IPath absoluteLocation = project.getLocation().append(location); binaryLocations.add(absoluteLocation.toPortableString()); } } } } // script += "\t\t<!--=== " + project.getName() + " ===-->\n"; script += "\t\t<jar destfile='" + targetModulePath + "/WEB-INF/lib/" + project.getName() + ".jar'>\n"; script += prepareFileSets(sourceLocations, "**"); script += prepareFileSets(binaryLocations, "**/*.class"); script += "\t\t</jar>\n"; } // add <copy> task for coping required runtime jar's if (addRuntimeJars) { String jars = ""; IRuntimeClasspathEntry[] classpathEntries = JavaRuntime.computeUnresolvedRuntimeClasspath(javaProject); for (int entryIndex = 0; entryIndex < classpathEntries.length; entryIndex++) { IRuntimeClasspathEntry entry = classpathEntries[entryIndex]; IRuntimeClasspathEntry[] resolvedEntries = JavaRuntime.resolveRuntimeClasspathEntry(entry, javaProject); for (int resolvedEntryIndex = 0; resolvedEntryIndex < resolvedEntries.length; resolvedEntryIndex++) { IRuntimeClasspathEntry resolvedEntry = resolvedEntries[resolvedEntryIndex]; if (resolvedEntry.getClasspathProperty() == IRuntimeClasspathEntry.USER_CLASSES && resolvedEntry.getType() == IRuntimeClasspathEntry.ARCHIVE) { String location = resolvedEntry.getLocation(); // exclude gwt-user.jar, it is in classpath, but it has Servlet class, so can not be in application if (location.endsWith("gwt-user.jar")) { continue; } // add jar file in fileset jars += "\t\t\t<fileset file=\"" + location + "\"/>\n"; } } } // if (jars.length() != 0) { script += "\t\t<copy todir='" + targetModulePath + "/WEB-INF/lib'>\n"; script += jars; script += "\t\t</copy>\n"; } } // add required projects { IProject[] referencedProjects = project.getReferencedProjects(); for (int i = 0; i < referencedProjects.length; i++) { IProject referencedProject = referencedProjects[i]; script += prepareJars(referencedProject, targetModulePath, false); } } // return script; }
From source file:com.google.gdt.eclipse.designer.launch.AbstractGwtLaunchConfigurationDelegate.java
License:Open Source License
/** * GWT requires source folders in classpath (because it has its own compiler), so we should add * all source folders for given project and its required projects. *///from w ww . j a v a2s .c o m public static void addSourceFolders(Set<IProject> visitedProjects, List<String> entries, IProject project) throws CoreException { // HACK: see above if (project.getName().endsWith("-design")) { return; } // check for recursion if (visitedProjects.contains(project)) { return; } visitedProjects.add(project); // IJavaProject javaProject = JavaCore.create(project); // add source folders for given project { IPackageFragmentRoot[] packageFragmentRoots = javaProject.getPackageFragmentRoots(); for (int i = 0; i < packageFragmentRoots.length; i++) { IPackageFragmentRoot packageFragmentRoot = packageFragmentRoots[i]; if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { entries.add(packageFragmentRoot.getResource().getLocation().toPortableString()); } } } // process required projects { IProject[] referencedProjects = project.getReferencedProjects(); for (int i = 0; i < referencedProjects.length; i++) { IProject referencedProject = referencedProjects[i]; addSourceFolders(visitedProjects, entries, referencedProject); } } }
From source file:com.google.gdt.eclipse.designer.uibinder.editor.UiBinderPairResourceProvider.java
License:Open Source License
/** * @return the ui.xml {@link IFile} for given Java one. *//* w w w . ja va2 s . com*/ private IFile getUIFile(IFile javaFile) throws Exception { IProject project = javaFile.getProject(); IJavaProject javaProject = JavaCore.create(project); // prepare form name String javaFormName = StringUtils.removeEnd(javaFile.getName(), ".java"); // prepare package name String packageName; { IFolder folder = (IFolder) javaFile.getParent(); IPackageFragment packageFragmentJava = (IPackageFragment) JavaCore.create(folder); packageName = packageFragmentJava.getElementName(); } // try to find ui.xml file in package with same name for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) { IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName); if (packageFragment.exists()) { for (Object object : packageFragment.getNonJavaResources()) { if (object instanceof IFile) { IFile uiFile = (IFile) object; String uiFileName = uiFile.getName(); if (StringUtils.endsWithIgnoreCase(uiFileName, ".ui.xml")) { String uiFormName = StringUtils.removeEndIgnoreCase(uiFileName, ".ui.xml"); if (uiFormName.equals(javaFormName)) { return uiFile; } } } } } } // no ui.xml file return null; }
From source file:com.google.gdt.eclipse.designer.util.DefaultModuleProvider.java
License:Open Source License
/** * @return the module files to which belongs given {@link IResource}, may be <code>null</code> if * no module found. Climbs up by {@link IPackageFragment}'s hierarchy, good for (Case * 33265), i.e. Maven-like source folder structure. *//* w ww. j a v a 2 s. c o m*/ private static List<IFile> getModuleFiles_java(IResource resource) throws Exception { IProject project = resource.getProject(); IJavaProject javaProject = JavaCore.create(project); // prepare package name String packageName; { // prepare folder IFolder folder; if (resource instanceof IFolder) { folder = (IFolder) resource; } else if (resource.getParent() instanceof IFolder) { folder = (IFolder) resource.getParent(); } else { return ImmutableList.of(); } // prepare package fragment IJavaElement javaElement = JavaCore.create(folder); if (javaElement instanceof IPackageFragment) { IPackageFragment pkgFragment = (IPackageFragment) javaElement; packageName = pkgFragment.getElementName(); } else { return ImmutableList.of(); } } // prepare source folders List<IPackageFragmentRoot> sourceFolders = Lists.newArrayList(); for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { sourceFolders.add(packageFragmentRoot); } } // search in this package and packages above for (; packageName.length() != 0; packageName = CodeUtils.getPackage(packageName)) { for (IPackageFragmentRoot packageFragmentRoot : sourceFolders) { IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName); if (packageFragment.exists()) { IResource underlyingResource = packageFragment.getUnderlyingResource(); if (underlyingResource instanceof IFolder) { IFolder folder = (IFolder) underlyingResource; List<IFile> moduleFiles = getModuleFiles(folder, false); if (!moduleFiles.isEmpty()) { return moduleFiles; } } } } } // no modules return ImmutableList.of(); }
From source file:com.google.gdt.eclipse.designer.util.DefaultModuleProvider.java
License:Open Source License
/** * @return the module {@link IFile} with given id, may be <code>null</code>. *//*from w w w . jav a 2 s.co m*/ private static IFile getModuleFile(IJavaProject javaProject, String moduleId) throws Exception { String moduleFileName = moduleId.replace('.', '/') + ".gwt.xml"; for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) { // check only in source folders if (packageFragmentRoot.getKind() != IPackageFragmentRoot.K_SOURCE) { continue; } // check IFolder of source folder IContainer sourceFolder = (IContainer) packageFragmentRoot.getUnderlyingResource(); IFile moduleFile = sourceFolder.getFile(new Path(moduleFileName)); if (moduleFile.exists()) { return moduleFile; } } // not found return null; }