List of usage examples for org.eclipse.jdt.core IPackageFragment getNonJavaResources
Object[] getNonJavaResources() throws JavaModelException;
From source file:at.bestsolution.fxide.jdt.text.javadoc.JavadocContentAccess2.java
License:Open Source License
/** * Returns the Javadoc for a package which could be present in package.html, package-info.java * or from an attached Javadoc./*from w w w .j av a 2 s. co m*/ * * @param packageFragment the package which is requesting for the document * @return the document content in HTML format or <code>null</code> if there is no associated * Javadoc * @throws CoreException if the Java element does not exists or an exception occurs while * accessing the file containing the package Javadoc * @since 3.9 */ public static String getHTMLContent(IPackageFragment packageFragment) throws CoreException { IPackageFragmentRoot root = (IPackageFragmentRoot) packageFragment .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); //1==> Handle the case when the documentation is present in package-info.java or package-info.class file ITypeRoot packageInfo; boolean isBinary = root.getKind() == IPackageFragmentRoot.K_BINARY; if (isBinary) { packageInfo = packageFragment.getClassFile(JavaModelUtil.PACKAGE_INFO_CLASS); } else { packageInfo = packageFragment.getCompilationUnit(JavaModelUtil.PACKAGE_INFO_JAVA); } if (packageInfo != null && packageInfo.exists()) { String cuSource = packageInfo.getSource(); //the source can be null for some of the class files if (cuSource != null) { Javadoc packageJavadocNode = getPackageJavadocNode(packageFragment, cuSource); if (packageJavadocNode != null) { IJavaElement element; if (isBinary) { element = ((IClassFile) packageInfo).getType(); } else { element = packageInfo.getParent(); // parent is the IPackageFragment } return new JavadocContentAccess2(element, packageJavadocNode, cuSource).toHTML(); } } } // 2==> Handle the case when the documentation is done in package.html file. The file can be either in normal source folder or coming from a jar file else { Object[] nonJavaResources = packageFragment.getNonJavaResources(); // 2.1 ==>If the package.html file is present in the source or directly in the binary jar for (Object nonJavaResource : nonJavaResources) { if (nonJavaResource instanceof IFile) { IFile iFile = (IFile) nonJavaResource; if (iFile.exists() && JavaModelUtil.PACKAGE_HTML.equals(iFile.getName())) { return getIFileContent(iFile); } } } // 2.2==>The file is present in a binary container if (isBinary) { for (Object nonJavaResource : nonJavaResources) { // The content is from an external binary class folder if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource; String encoding = getSourceAttachmentEncoding(root); if (JavaModelUtil.PACKAGE_HTML.equals(jarEntryResource.getName()) && jarEntryResource.isFile()) { return getHTMLContent(jarEntryResource, encoding); } } } //2.3 ==>The file is present in the source attachment path. String contents = getHTMLContentFromAttachedSource(root, packageFragment); if (contents != null) return contents; } } //3==> Handle the case when the documentation is coming from the attached Javadoc if ((root.isArchive() || root.isExternal())) { return packageFragment.getAttachedJavadoc(null); } return null; }
From source file:at.component.newcomponentwizard.generator.NewProjectCreationOperation.java
License:Open Source License
@SuppressWarnings({ "rawtypes", "unchecked" }) private void addAllSourcePackages(IProject project, Set list) { try {//from w w w. j a v a 2s. c o m IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] classpath = javaProject.getRawClasspath(); for (int i = 0; i < classpath.length; i++) { IClasspathEntry entry = classpath[i]; if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPath path = entry.getPath().removeFirstSegments(1); if (path.segmentCount() > 0) { IPackageFragmentRoot root = javaProject.getPackageFragmentRoot(project.getFolder(path)); IJavaElement[] children = root.getChildren(); for (int j = 0; j < children.length; j++) { IPackageFragment frag = (IPackageFragment) children[j]; if (frag.getChildren().length > 0 || frag.getNonJavaResources().length > 0) list.add(children[j].getElementName()); } } } } } catch (JavaModelException e) { } }
From source file:ccw.ClojureCore.java
License:Open Source License
/** * Tries to open a clojure file in an editor * @return an editor input if the file has been found, or null */// w ww.j a v a2s.c o m private static IEditorInput findEditorInput(IPackageFragmentRoot packageFragmentRoot, IPackageFragment packageFragment, String searchedPackage, String searchedFileName) throws JavaModelException { if (packageFragment.exists() && packageFragment.getElementName().equals(searchedPackage)) { for (Object njr : packageFragment.isDefaultPackage() ? packageFragmentRoot.getNonJavaResources() : packageFragment.getNonJavaResources()) { if (njr instanceof IJarEntryResource) { IJarEntryResource jer = (IJarEntryResource) njr; if (jer.getName().equals(searchedFileName)) { return new JarEntryEditorInput(jer); } } else if (njr instanceof IFile) { IFile file = (IFile) njr; if (file.getName().equals(searchedFileName)) { return new FileEditorInput(file); } } else if (njr instanceof File) { File f = (File) njr; if (f.getName().equals(searchedFileName)) { IFileStore fileStore = EFS.getLocalFileSystem().getStore(f.toURI()); return new FileStoreEditorInput(fileStore); } } } } return null; }
From source file:com.codenvy.ide.ext.java.server.JavaNavigation.java
License:Open Source License
private static boolean isEmpty(IPackageFragment fragment) throws JavaModelException { return !fragment.containsJavaResources() && fragment.getNonJavaResources().length == 0; }
From source file:com.codenvy.ide.ext.java.server.JavaNavigation.java
License:Open Source License
protected Object[] getPackageContent(IPackageFragment fragment) throws JavaModelException { // hierarchical package mode ArrayList<Object> result = new ArrayList<Object>(); getHierarchicalPackageChildren((IPackageFragmentRoot) fragment.getParent(), fragment, result); IClassFile[] classFiles = fragment.getClassFiles(); List<IClassFile> filtered = new ArrayList<>(); //filter inner classes for (IClassFile classFile : classFiles) { if (!classFile.getElementName().contains("$")) { filtered.add(classFile);/*from w w w. java 2 s . c o m*/ } } Object[] nonPackages = concatenate(filtered.toArray(), fragment.getNonJavaResources()); if (result.isEmpty()) return nonPackages; Collections.addAll(result, nonPackages); return result.toArray(); }
From source file:com.ebmwebsourcing.petals.common.internal.provisional.ui.JarExportWizardPage.java
License:Open Source License
@Override public void createControl(Composite parent) { Composite container = new Composite(parent, SWT.NONE); container.setLayout(new GridLayout()); container.setLayoutData(new GridData(GridData.FILL_BOTH)); new Label(container, SWT.NONE).setText( "Select the resources to export.\nThe following projects are the project you selected and the projects it depends on."); int labelFlags = JavaElementLabelProvider.SHOW_BASICS | JavaElementLabelProvider.SHOW_OVERLAY_ICONS | JavaElementLabelProvider.SHOW_SMALL_ICONS; ITreeContentProvider treeContentProvider = new StandardJavaElementContentProvider() { @Override/*from ww w. ja va2 s .co m*/ public boolean hasChildren(Object element) { return !(element instanceof IPackageFragment) && super.hasChildren(element); } @Override public Object[] getElements(Object parent) { if (parent instanceof IWorkspaceRoot) { List<IJavaProject> result = JavaUtils .getJavaProjectDependencies(JarExportWizardPage.this.selectedProject); return result.toArray(); } return super.getElements(parent); } }; final DecoratingLabelProvider provider = new DecoratingLabelProvider( new JavaElementLabelProvider(labelFlags), new ProblemsLabelDecorator(null)); this.javaSelectionViewer = new CheckboxTreeAndListGroup(container, ResourcesPlugin.getWorkspace().getRoot(), treeContentProvider, provider, new StandardJavaElementContentProvider(), provider, SWT.NONE, 420, 150) { /* * (non-Javadoc) * @see com.ebmwebsourcing.petals.common.internal.provisional.ui.jdt.CheckboxTreeAndListGroup * #setTreeChecked(java.lang.Object, boolean) */ @Override protected void setTreeChecked(final Object element, final boolean state) { if (element instanceof IResource) { final IResource resource = (IResource) element; if (resource.getName().charAt(0) == '.') return; } super.setTreeChecked(element, state); } }; this.javaSelectionViewer.addTreeFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object parent, Object element) { boolean result = true; if (element instanceof IPackageFragment) { IPackageFragment pkg = (IPackageFragment) element; try { if (pkg.isDefaultPackage()) result = pkg.hasChildren(); else result = !pkg.hasSubpackages() || pkg.hasChildren() || pkg.getNonJavaResources().length > 0; } catch (JavaModelException e) { result = false; } } return result; } }); this.javaSelectionViewer.setTreeComparator(new JavaElementComparator()); this.javaSelectionViewer.setListComparator(new JavaElementComparator()); this.javaSelectionViewer.addTreeFilter(new ContainerFilter(ContainerFilter.FILTER_NON_CONTAINERS)); this.javaSelectionViewer.addTreeFilter(new ViewerFilter() { @Override public boolean select(Viewer viewer, Object p, Object element) { if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; return !root.isArchive() && !root.isExternal(); } return true; } }); this.javaSelectionViewer.addListFilter(new ContainerFilter(ContainerFilter.FILTER_CONTAINERS)); this.javaSelectionViewer.expandTreeToLevel(this.selectedProject, 1); this.javaSelectionViewer.addCheckStateListener(new ICheckStateListener() { @Override public void checkStateChanged(CheckStateChangedEvent event) { validate(); } }); // Options final Button exportSourcesButton = new Button(container, SWT.CHECK); exportSourcesButton.setText("Export sources"); exportSourcesButton.setSelection(this.exportSources); exportSourcesButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { JarExportWizardPage.this.exportSources = exportSourcesButton.getSelection(); validate(); } }); final Button compressJarButton = new Button(container, SWT.CHECK); compressJarButton.setText("Compress the content of the JAR file"); compressJarButton.setSelection(this.compressJar); compressJarButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { JarExportWizardPage.this.compressJar = compressJarButton.getSelection(); validate(); } }); final Button exportWarningsAndErrorsButton = new Button(container, SWT.CHECK); exportWarningsAndErrorsButton.setText("Export class files with compile warnings or errors"); exportWarningsAndErrorsButton.setSelection(this.exportWarningsAndErrors); exportWarningsAndErrorsButton.addSelectionListener(new SelectionAdapter() { @Override public void widgetSelected(SelectionEvent e) { JarExportWizardPage.this.exportWarningsAndErrors = exportWarningsAndErrorsButton.getSelection(); validate(); } }); validate(); setErrorMessage(null); setControl(container); }
From source file:com.google.gdt.eclipse.core.java.ClasspathResourceUtilities.java
License:Open Source License
/** * Returns the given file or JAR entry if it is on the given package fragment. * The file can be a Java file, class file, or a non-Java resource. * <p>/*from www. j ava 2 s . c om*/ * This method returns null for .java files or .class files inside JARs. * * @param fileName the file name * @param pckgFragment the package fragment to search * @return the file as an IResource or IJarEntryResource, or null * @throws JavaModelException */ public static IStorage resolveFileOnPackageFragment(String fileName, IPackageFragment pckgFragment) throws JavaModelException { boolean isJavaFile = JavaCore.isJavaLikeFileName(fileName); boolean isClassFile = ResourceUtils.endsWith(fileName, ".class"); // Check the non-Java resources first Object[] nonJavaResources = pckgFragment.getNonJavaResources(); for (Object nonJavaResource : nonJavaResources) { if (nonJavaResource instanceof IFile) { IFile file = (IFile) nonJavaResource; String resFileName = file.getName(); if (ResourceUtils.areFilenamesEqual(resFileName, fileName)) { // Java source files that have been excluded from the build path // show up as non-Java resources, but we'll ignore them since // they're not available on the classpath. if (!JavaCore.isJavaLikeFileName(resFileName)) { return file; } else { return null; } } } // JAR resources are not IResource's, so we need to handle them // differently if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource jarEntry = (IJarEntryResource) nonJavaResource; if (jarEntry.isFile() && ResourceUtils.areFilenamesEqual(jarEntry.getName(), fileName)) { return jarEntry; } } } // If we're looking for a .java or .class file, we can use the regular // Java Model methods. if (isJavaFile) { ICompilationUnit cu = pckgFragment.getCompilationUnit(fileName); if (cu.exists()) { return (IFile) cu.getCorrespondingResource(); } } if (isClassFile) { IClassFile cf = pckgFragment.getClassFile(fileName); if (cf.exists()) { return (IFile) cf.getCorrespondingResource(); } } return null; }
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. *///from w ww . j a va2 s . c o m 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 all module files in given {@link IJavaProject}. *//*from ww w . j a v a 2s. 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.gwt.eclipse.core.modules.ModuleUtils.java
License:Open Source License
/** * Find modules in package//from w ww .j a va 2 s . c o m * * @param pckg * @param modules * @param includeJars * @throws JavaModelException */ protected static void testNonJavaResourcesForModules(IPackageFragment pckg, Map<String, IModule> modules, boolean includeJars) throws JavaModelException { for (Object resource : pckg.getNonJavaResources()) { IModule module = create(resource, includeJars); if (module != null) { String moduleName = module.getQualifiedName(); if (!modules.containsKey(moduleName)) { modules.put(moduleName, module); } } } }