List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE
int K_SOURCE
To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_SOURCE.
Click Source Link
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). *//* w w w.j a va 2 s. co m*/ 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.wizards.helpers.RpcServiceLayerCreator.java
License:Open Source License
/** * Compute a package name/*from www .jav a 2s . c o m*/ * * @throws JavaModelException */ private String inferPackageName(IJavaProject gaeJavaProject) throws JavaModelException { for (IPackageFragment pf : gaeJavaProject.getPackageFragments()) { if (pf.getKind() == IPackageFragmentRoot.K_SOURCE && pf.getElementName().contains("server")) //$NON-NLS-N$ return pf.getElementName(); } // TODO: find a better story for selecting package return "com.google.rpc"; //$NON-NLS-N$ }
From source file:com.google.gdt.eclipse.appengine.rpc.wizards.RPCWizardUISupport.java
License:Open Source License
public IPackageFragmentRoot chooseContainer(IType type) { Class<?>[] acceptedClasses = new Class[] { IPackageFragmentRoot.class, IJavaProject.class }; TypedElementSelectionValidator validator = new TypedElementSelectionValidator(acceptedClasses, false) { @Override/*from w ww . ja v a2s . co m*/ public boolean isSelectedValid(Object element) { try { if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; IPath path = jproject.getProject().getFullPath(); return (jproject.findPackageFragmentRoot(path) != null); } else if (element instanceof IPackageFragmentRoot) { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } return true; } catch (JavaModelException e) { AppEngineRPCPlugin.log(e); } return false; } }; acceptedClasses = new Class[] { IJavaModel.class, IPackageFragmentRoot.class, IJavaProject.class }; ViewerFilter filter = new TypedViewerFilter(acceptedClasses) { @Override public boolean select(Viewer viewer, Object parent, Object element) { // only show appengine projects if (element instanceof IJavaProject) { IJavaProject jp = (IJavaProject) element; return isAppEngineProject(jp.getProject()); } // only show source folders if (element instanceof IPackageFragmentRoot) { try { return (((IPackageFragmentRoot) element).getKind() == IPackageFragmentRoot.K_SOURCE); } catch (JavaModelException e) { AppEngineRPCPlugin.log(e); return false; } } return super.select(viewer, parent, element); } }; StandardJavaElementContentProvider provider = new StandardJavaElementContentProvider(); ILabelProvider labelProvider = new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT); ElementTreeSelectionDialog dialog = new ElementTreeSelectionDialog(getShell(), labelProvider, provider); dialog.setValidator(validator); dialog.setComparator(new JavaElementComparator()); dialog.setTitle("Source Folder Selection"); //$NON-NLS-1$ dialog.setMessage("&Choose a source folder:"); //$NON-NLS-1$ dialog.addFilter(filter); dialog.setInput(JavaCore.create(ResourcesPlugin.getWorkspace().getRoot())); if (type != null) { dialog.setInitialSelection(JavaUtils.getPackageFragmentRoot(type)); } dialog.setHelpAvailable(false); if (dialog.open() == Window.OK) { Object element = dialog.getFirstResult(); if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; return jproject.getPackageFragmentRoot(jproject.getProject()); } else if (element instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) element; } return null; } return null; }
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. *//*ww w .j a va 2s . 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. *///w w w . 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.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 w w. ja v a 2 s. c om 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 .j a v a2 s .c om*/ 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; }
From source file:com.google.gdt.eclipse.designer.util.DefaultModuleProvider.java
License:Open Source License
/** * @return all module files in given {@link IJavaProject}. *//*from www . ja v a2 s .c o m*/ private static List<IFile> getModuleFiles(IJavaProject javaProject) throws Exception { List<IFile> moduleFiles = Lists.newArrayList(); for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) { // check only in source folders if (packageFragmentRoot.getKind() != IPackageFragmentRoot.K_SOURCE) { continue; } // check packages for (IJavaElement rootChild : packageFragmentRoot.getChildren()) { // check only packages if (rootChild instanceof IPackageFragment) { IPackageFragment pkg = (IPackageFragment) rootChild; for (Object object : pkg.getNonJavaResources()) { // check only files if (object instanceof IFile) { IFile file = (IFile) object; // check that file is GWT module file if (isModuleFile(file)) { moduleFiles.add(file); } } } } } } return moduleFiles; }
From source file:com.google.gdt.eclipse.designer.util.resources.DefaultResourcesProvider.java
License:Open Source License
/** * Appends source {@link IPackageFragmentRoot}'s, because {@link DefaultResourcesProvider} should * provide access not only to the binary resources (i.e. just resources in classpath), but also to * the source resources./*from w w w . j a va2 s . c o m*/ */ private static void addSourceFolders(Set<IProject> visitedProjects, List<String> entries, IProject project) throws Exception { // may be not exists if (!project.exists()) { return; } // may be already visited if (visitedProjects.contains(project)) { return; } visitedProjects.add(project); // add source folders for IJavaProject { IJavaProject javaProject = JavaCore.create(project); if (javaProject.exists()) { for (IPackageFragmentRoot packageFragmentRoot : javaProject.getPackageFragmentRoots()) { if (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE) { entries.add(packageFragmentRoot.getResource().getLocation().toPortableString()); } } } } // process required projects for (IProject referencedProject : project.getReferencedProjects()) { addSourceFolders(visitedProjects, entries, referencedProject); } }
From source file:com.iw.plugins.spindle.ant.AntScriptGenerator.java
License:Mozilla Public License
/** * @param monitor/*from www . ja v a 2 s .c om*/ */ private void harvestBinaryLibrariesAndSourceFolders(IProgressMonitor monitor) { try { IJavaProject jproject = fTapestryProject.getJavaProject(); if (jproject == null) return; IPackageFragmentRoot[] allRoots = jproject.getAllPackageFragmentRoots(); for (int i = 0; i < allRoots.length; i++) { int kind = allRoots[i].getKind(); switch (kind) { case IPackageFragmentRoot.K_BINARY: if (!fServletAPIRoots.contains(allRoots[i])) fBinaryLibraries.add(allRoots[i]); break; case IPackageFragmentRoot.K_SOURCE: fSourceFolders.add(allRoots[i]); break; default: break; } } } catch (CoreException e) { UIPlugin.log(e); } }