List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY
int K_BINARY
To view the source code for org.eclipse.jdt.core IPackageFragmentRoot K_BINARY.
Click Source Link
From source file:org.eclipse.pde.internal.ui.wizards.tools.ConvertJarsAction.java
License:Open Source License
/** * @see IActionDelegate#selectionChanged(IAction, ISelection) */// w w w.j a v a2 s. c om public void selectionChanged(IAction action, ISelection s) { boolean enabled = true; if (s instanceof IStructuredSelection) { selection = (IStructuredSelection) s; if (selection.size() == 0) return; Iterator<?> i = selection.iterator(); while (i.hasNext()) { Object obj = i.next(); if (obj instanceof IPackageFragmentRoot) { try { IPackageFragmentRoot packageFragment = (IPackageFragmentRoot) obj; if (packageFragment.getKind() == IPackageFragmentRoot.K_BINARY) { if (PDE.hasPluginNature(packageFragment.getJavaProject().getProject())) { if (packageFragment.getRawClasspathEntry() .getEntryKind() == IClasspathEntry.CPE_LIBRARY) continue; } } } catch (JavaModelException e) { } } enabled = false; break; } } else { enabled = false; this.selection = null; } action.setEnabled(enabled); }
From source file:org.eclipse.pde.launching.PDESourcePathProvider.java
License:Open Source License
/** * Adds runtime classpath entries for binary package fragment roots contained within * the project/*from w w w . j a v a 2 s . co m*/ * * @param jProject * the Java project whose roots are to be enumerated * @param all * a list of accumulated runtime classpath entries * @throws CoreException * if unable to evaluate the package fragment roots */ private void addBinaryPackageFragmentRoots(IJavaProject jProject, List<IRuntimeClasspathEntry> all) throws CoreException { IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); for (int j = 0; j < roots.length; j++) { if (roots[j].getKind() == IPackageFragmentRoot.K_BINARY && !PDEJavaHelper.isJRELibrary(roots[j])) { IRuntimeClasspathEntry rte = JavaRuntime.newArchiveRuntimeClasspathEntry(roots[j].getPath()); IPath path = roots[j].getSourceAttachmentPath(); if (path != null) { rte.setSourceAttachmentPath(path); rte.setSourceAttachmentRootPath(roots[j].getSourceAttachmentRootPath()); } if (!all.contains(rte)) all.add(rte); } } }
From source file:org.eclipse.virgo.ide.manifest.internal.core.validation.rules.ExportPackageRule.java
License:Open Source License
private void validateExportPackage(BundleManifestHeader header, ManifestElement element, BundleManifestValidationContext context) { boolean found = false; try {// ww w.j a va 2 s . co m IPackageFragmentRoot[] roots = JdtUtils.getJavaProject(context.getRootElement().getElementResource()) .getPackageFragmentRoots(); for (IPackageFragmentRoot root : roots) { int kind = root.getKind(); if (kind == IPackageFragmentRoot.K_SOURCE || (kind == IPackageFragmentRoot.K_BINARY && !root.isExternal())) { IJavaElement[] javaElements = root.getChildren(); for (int j = 0; j < javaElements.length; j++) if (javaElements[j] instanceof IPackageFragment) { IPackageFragment fragment = (IPackageFragment) javaElements[j]; String name = fragment.getElementName(); if (name.length() == 0) { name = "."; } if (fragment.containsJavaResources() || fragment.getNonJavaResources().length > 0) { if (name.equals(element.getValue())) { found = true; } } } } } } catch (JavaModelException e) { } // if we actually have packages to add if (!found) { context.warning("MISSING_PACKAGE_EXPORT", "Bundle does export non-existing package", header.getLineNumber() + 1); } }
From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java
License:Open Source License
public static IJarEntryResource getJavaResourceFileFromBinary(IProject project, String jarNamePattern, String packageName, String fileName) { IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try {/*w ww.j a v a2 s . c om*/ IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); IPackageFragmentRoot root = null; for (int i = 0; i < roots.length; i++) { root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_BINARY) { if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().startsWith(jarNamePattern)) { Object[] nonJavaResources = null; if (packageName != null) { IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null) { nonJavaResources = fragment.getNonJavaResources(); } } else { nonJavaResources = root.getNonJavaResources(); } if (nonJavaResources != null) { Object nonJavaResource = null; for (int j = 0; j < nonJavaResources.length; j++) { nonJavaResource = nonJavaResources[j]; if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource r = (IJarEntryResource) nonJavaResource; if (r.isFile() && fileName.equals(r.getName())) { return r; } } } } } } } } catch (JavaModelException e) { Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '")) .append(project.getName()).append("'").toString(), e); } } return null; }
From source file:org.eclipse.wst.xml.search.editor.util.JdtUtils.java
License:Open Source License
public static IJarEntryResource[] getJavaResourcesFileFromBinary(IProject project, String jarNamePattern, String packageName, String fileName) { Collection<IJarEntryResource> files = new ArrayList<IJarEntryResource>(); IJavaProject javaProject = getJavaProject(project); if (javaProject != null) { try {/*w ww . ja v a 2s .c om*/ IPackageFragmentRoot[] roots = javaProject.getPackageFragmentRoots(); IPackageFragmentRoot root = null; for (int i = 0; i < roots.length; i++) { root = roots[i]; if (root.getKind() == IPackageFragmentRoot.K_BINARY) { if (StringUtils.isEmpty(jarNamePattern) || root.getElementName().contains(jarNamePattern)) { Object[] nonJavaResources = null; if (packageName != null) { IPackageFragment fragment = root.getPackageFragment(packageName); if (fragment != null) { nonJavaResources = fragment.getNonJavaResources(); } } else { nonJavaResources = root.getNonJavaResources(); } if (nonJavaResources != null) { Object nonJavaResource = null; for (int j = 0; j < nonJavaResources.length; j++) { nonJavaResource = nonJavaResources[j]; if (nonJavaResource instanceof IJarEntryResource) { IJarEntryResource r = (IJarEntryResource) nonJavaResource; if (r.isFile() && r.getName().contains(fileName)) { files.add(r); } } } } } } } } catch (JavaModelException e) { Trace.trace(Trace.SEVERE, (new StringBuilder("Error getting Java project src for project '")) .append(project.getName()).append("'").toString(), e); } } return files.toArray(new IJarEntryResource[files.size()]); }
From source file:org.flowerplatform.editor.java.propertypage.remote.JavaProjectPropertyPageService.java
License:Open Source License
public Object getClasspathEntries(ServiceInvocationContext context, List<PathFragment> path) { @SuppressWarnings("unchecked") Pair<File, String> node = (Pair<File, String>) GenericTreeStatefulService.getNodeByPathFor(path, null); File projectFile = node.a;/*w ww.j a va 2s .c o m*/ File wd = ProjectsService.getInstance().getProjectToWorkingDirectoryAndIProjectMap().get(projectFile).a; IProject project = ProjectsService.getInstance().getProjectToWorkingDirectoryAndIProjectMap() .get(projectFile).b; IJavaProject javaProject = JavaCore.create(project); List<String> srcFolders = new ArrayList<String>(); List<String> projects = new ArrayList<String>(); List<String> libraries = new ArrayList<String>(); try { if (!project.getFile(IJavaProject.CLASSPATH_FILE_NAME).exists()) { return null; } @SuppressWarnings("restriction") IClasspathEntry[][] entries = ((JavaProject) javaProject).readFileEntriesWithException(null); for (IClasspathEntry entry : entries[0]) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { srcFolders.add(entry.getPath() .makeRelativeTo(project.getFolder(ProjectsService.LINK_TO_PROJECT).getFullPath()) .toFile().getPath()); } else if (entry.getEntryKind() == IClasspathEntry.CPE_PROJECT) { File file = ProjectsService.getInstance().getFileFromProjectWrapperResource( ResourcesPlugin.getWorkspace().getRoot().getProject(entry.getPath().lastSegment())); projects.add(CommonPlugin.getInstance().getPathRelativeToFile(file, wd)); } else if (entry.getEntryKind() == IClasspathEntry.CPE_LIBRARY && entry.getContentKind() == IPackageFragmentRoot.K_BINARY) { IFile resource = ResourcesPlugin.getWorkspace().getRoot().getFile(entry.getPath()); File file = ProjectsService.getInstance().getFileFromProjectWrapperResource(resource); libraries.add(CommonPlugin.getInstance().getPathRelativeToFile(file, wd)); } } } catch (CoreException | IOException e) { logger.error("Exception thrown while getting java classpath entries for {}", project.getName(), e); return null; } return new Object[] { srcFolders, projects, libraries }; }
From source file:org.grails.ide.eclipse.explorer.providers.GrailsNavigatorFilter.java
License:Open Source License
public boolean select(Viewer arg0, Object parent, Object element) { if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = ((IPackageFragmentRoot) element); try {/* w w w.ja v a 2 s.c om*/ // allow binary content like libraries if (root.getKind() == IPackageFragmentRoot.K_BINARY) { return true; } } catch (JavaModelException e) { GrailsCoreActivator.log(e); } IProject project = ((IPackageFragmentRoot) element).getJavaProject().getProject(); Object immediateParent = getImmediateParent(parent); // Filter out all top-level level plugin dependency package // fragment roots. Filter in all other package fragment roots if (GrailsNature.isGrailsProject(project) && isGrailsDependencyPackageFragmentRoot(immediateParent, root)) { return false; } } else if (element instanceof IFolder) { IFolder folder = (IFolder) element; IProject project = folder.getProject(); if (GrailsNature.isGrailsProject(project)) { // For reimages Grails file folders, if they are top level, // filter them in. If they are child of other folders, filter // them out Object immediateParent = getImmediateParent(parent); if (GrailsResourceUtil.isReimagedGrailsProjectFileFolder(folder) && !(immediateParent instanceof IProject)) { return false; } else if (GrailsResourceUtil.isFilteredGrailsFolder(folder)) { return false; } else if (GrailsResourceUtil.isDefaultOutputFolder(folder)) { return false; } else { // Do a further check to see if any children may be filtered // out. If so, don't show the parent folder try { IResource[] children = folder.members(); // Filtering algorithm: // If a folder contains AT LEAST one filtered child, it // means // it's a Grails folder, in which case if all children // are filtered // ONLY then is the parent folder filtered out. // Note to be careful not to filter out folders that // contain anything // else. if (children != null) { boolean filterOutParentFolder = false; for (IResource child : children) { if ((child instanceof IFolder) && (GrailsResourceUtil .isFilteredGrailsFolder((IFolder) child) || GrailsResourceUtil.isReimagedGrailsProjectFileFolder((IFolder) child))) { // For now decide to filter out the parent // folder // as it contains filtered Grails content filterOutParentFolder = true; } else { filterOutParentFolder = false; break; } } // All the children in the folder is filtered Grail // content, therefore // filter out the parent folder. if (filterOutParentFolder) { return false; } } } catch (CoreException e) { GrailsCoreActivator.log(e); } } } } else if (element instanceof IPackageFragment) { IPackageFragment frag = (IPackageFragment) element; IJavaProject javaProject = frag.getJavaProject(); if (GrailsNature.isGrailsProject(javaProject.getProject()) && frag.isDefaultPackage()) { IJavaElement javaParent = frag.getParent(); if (javaParent instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) javaParent; // Only filter out the default package fragment from CONF // folder GrailsProjectStructureTypes type = GrailsResourceUtil.getGrailsContainerType(root); if (type == GrailsProjectStructureTypes.CONF) { return false; } } } } else if (element instanceof ClassPathContainer) { //Hide toplevel classpath containers. if (parent instanceof TreePath) { TreePath parentPath = (TreePath) parent; if (parentPath.getLastSegment() instanceof IProject) { IProject project = (IProject) parentPath.getLastSegment(); return !GrailsNature.isGrailsProject(project); } } } return true; }
From source file:org.hibernate.eclipse.jdt.ui.internal.jpa.actions.JPAMapToolActionDelegate.java
License:Open Source License
protected boolean checkEnabled() { boolean enable = false; Object obj = refContextObject != null ? refContextObject.get() : null; if (obj == null) { return enable; }//from w ww . j av a 2 s . c o m List<?> list = null; if (obj instanceof List) { list = (List<?>) obj; } else { list = Collections.singletonList(obj); } Iterator<?> it = list.iterator(); while (it.hasNext() && !enable) { Object obj2 = it.next(); if (!(obj2 instanceof IJavaElement)) { continue; } int kind = IPackageFragmentRoot.K_SOURCE; if (obj2 instanceof IPackageFragment) { IPackageFragment pf = (IPackageFragment) obj2; try { kind = pf.getKind(); } catch (JavaModelException e) { kind = IPackageFragmentRoot.K_BINARY; } } else if (obj2 instanceof IPackageFragmentRoot) { IPackageFragmentRoot pfr = (IPackageFragmentRoot) obj2; try { kind = pfr.getKind(); } catch (JavaModelException e) { kind = IPackageFragmentRoot.K_BINARY; } } if (kind == IPackageFragmentRoot.K_SOURCE) { enable = true; } } if (!enable) { enable = isCUSelected(); } return enable; }
From source file:org.hibernate.eclipse.jdt.ui.internal.jpa.actions.JPAMapToolActor.java
License:Open Source License
/** * Check is the object in set of excluded elements * @param obj/*from www .jav a2 s . co m*/ * @return exclusion result */ protected boolean excludeElement(Object obj) { boolean res = false; if (obj instanceof JarPackageFragmentRoot) { res = true; } else if (obj instanceof ClassFile) { res = true; } else if (obj instanceof PackageFragment) { PackageFragment pf = (PackageFragment) obj; try { if (pf.getKind() == IPackageFragmentRoot.K_BINARY) { res = true; } } catch (JavaModelException e) { // ignore } } else if (obj instanceof ExternalPackageFragmentRoot) { res = true; } return res; }
From source file:org.jboss.tools.as.sourcelookup.ui.actions.AttachSourcesActionDelegate.java
License:Open Source License
private void attachSource(IPackageFragmentRoot fragment, IPath newSourcePath) { try {/*from w w w . j a v a 2 s . c o m*/ if (fragment == null || fragment.getKind() != IPackageFragmentRoot.K_BINARY) { return; } IPath containerPath = null; IJavaProject jproject = fragment.getJavaProject(); IClasspathEntry entry = fragment.getRawClasspathEntry(); if (entry == null) { entry = JavaCore.newLibraryEntry(fragment.getPath(), null, null); } else { if (entry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { containerPath = entry.getPath(); ClasspathContainerInitializer initializer = JavaCore .getClasspathContainerInitializer(containerPath.segment(0)); IClasspathContainer container = JavaCore.getClasspathContainer(containerPath, jproject); if (initializer == null || container == null) { return; } IStatus status = initializer.getSourceAttachmentStatus(containerPath, jproject); if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_NOT_SUPPORTED) { return; } if (status.getCode() == ClasspathContainerInitializer.ATTRIBUTE_READ_ONLY) { return; } entry = JavaModelUtil.findEntryInContainer(container, fragment.getPath()); if (entry == null) { return; } } } IClasspathEntry entry1; CPListElement elem = CPListElement.createFromExisting(entry, null); elem.setAttribute(CPListElement.SOURCEATTACHMENT, newSourcePath); entry1 = elem.getClasspathEntry(); if (entry1.equals(entry)) { return; } IClasspathEntry newEntry = entry1; String[] changedAttributes = { CPListElement.SOURCEATTACHMENT }; BuildPathSupport.modifyClasspathEntry(null, newEntry, changedAttributes, jproject, containerPath, newEntry.getReferencingEntry() != null, new NullProgressMonitor()); } catch (CoreException e) { // ignore } }