List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot isArchive
public boolean isArchive();
From source file:org.eclipse.xtext.ui.resource.Storage2UriMapperJavaImpl.java
License:Open Source License
/** * @since 2.4/* w w w . ja va2 s . c om*/ */ private void updateCache(IJavaProject project) { Set<PackageFragmentRootData> datas = newHashSet(); try { if (project.exists() && project.getProject().isAccessible()) { for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { boolean isCachable = root.isArchive() || root.isExternal(); if (isCachable) datas.add(getCachedData(root)); } } } catch (JavaModelException e) { if (!e.isDoesNotExist()) log.error("Error getting package fragments roots of " + project.getElementName(), e); } finally { clearCache(project, datas); } }
From source file:org.eclipse.xtext.ui.util.JdtClasspathUriResolver.java
License:Open Source License
protected URI findResourceInWorkspace(IJavaProject javaProject, URI classpathUri) throws CoreException { if (javaProject.exists()) { String packagePath = classpathUri.trimSegments(1).path(); String fullPath = classpathUri.path(); String fileName = classpathUri.lastSegment(); IPath filePath = new Path(fileName); String packageName = isEmpty(packagePath) ? "" : packagePath.substring(1).replace('/', '.'); for (IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) { IPackageFragment packageFragment = packageFragmentRoot.getPackageFragment(packageName); if (packageFragment.exists()) { IResource packageFragmentResource = packageFragment.getResource(); if (packageFragmentResource instanceof IContainer) { IFile file = ((IContainer) packageFragmentResource).getFile(filePath); if (file.exists()) return createPlatformResourceURI(file); } else { // jar file or external class folder if (packageFragmentRoot.isArchive()) { // jar file Object[] nonJavaResources = getNonJavaResources(packageFragmentRoot, packageFragment); for (Object nonJavaResource : nonJavaResources) { IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource; if (fullPath.equals(jarEntryResource.getFullPath().toString())) { IResource packageFragmentRootResource = packageFragmentRoot.getResource(); if (packageFragmentRootResource != null) { // we have a resource - use nested platform/resource URI packageFragmentRootURI = createPlatformResourceURI( packageFragmentRootResource); URI result = createArchiveURI(packageFragmentRootURI, fullPath); return result; } else { // no resource - use file uri IPath packageFragmentRootPath = packageFragmentRoot.getPath(); URI packageFragmentRootURI = URI .createFileURI(packageFragmentRootPath.toString()); URI result = createArchiveURI(packageFragmentRootURI, fullPath); return result; }/*from w w w . jav a2s. c o m*/ } } } else if (packageFragmentRoot.isExternal()) { // external class folder Object[] nonJavaResources = getNonJavaResources(packageFragmentRoot, packageFragment); for (Object nonJavaResource : nonJavaResources) { IJarEntryResource jarEntryResource = (IJarEntryResource) nonJavaResource; if (fileName.equals(jarEntryResource.getName())) { IResource packageFragmentRootResource = ((ExternalPackageFragmentRoot) packageFragmentRoot) .resource(); IPath absolutePath = packageFragmentRootResource.getFullPath(); absolutePath = absolutePath.append(fullPath); return createPlatformResourceURI(absolutePath); } } } } } } // not found in a source folder - look for a resource relative to project root // of this project or one of its dependencies URI result = findResourceInProjectRoot(javaProject, classpathUri.path(), Sets.<String>newHashSet()); if (result != null) { return result; } } return classpathUri; }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * * @param project//from w ww . jav a 2s. c o m * @return */ public static String[][] getSourcePathsForProject(final String project) { final IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); final List<String> paths = new ArrayList<String>(); try { for (final IProject prjct : projects) { if (project == null || prjct.getName().equals(project)) { final IJavaProject javaProject = JavaCore.create(prjct); if (javaProject == null || !javaProject.exists()) { continue; } if (isProjectBinary(javaProject)) { continue; } for (final IPackageFragmentRoot packageFragmentRoot : javaProject .getAllPackageFragmentRoots()) { if (packageFragmentRoot == null || !packageFragmentRoot.exists() || packageFragmentRoot.isArchive() || packageFragmentRoot.isExternal()) { continue; } if (!packageFragmentRoot.getParent().equals(javaProject)) { // discard // roots // which // come // from // another // project. continue; } final String fullSrcPath = packageFragmentRoot.getPath().toString(); final String srcPath = fullSrcPath .replaceFirst(FORWARD_SLASH + javaProject.getElementName(), EMPTY_STR); if (!paths.contains(srcPath)) { paths.add(srcPath); } } } } } catch (final Exception ex) { ex.printStackTrace(); } return getStringArrayFromList(paths, true); }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * * @param javaProject/*from ww w . j a va2 s .c o m*/ * @return * @throws Exception */ private static boolean isProjectBinary(final IJavaProject javaProject) throws Exception { for (final IPackageFragmentRoot packageFragmentRoot : javaProject.getAllPackageFragmentRoots()) { if (packageFragmentRoot != null && packageFragmentRoot.exists() && !packageFragmentRoot.isArchive()) { return false; } } return true; }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * * @return//from www . j a v a2 s. com */ public static String[][] getAllSourcePaths(final String filter) { final IProject[] projects = ResourcesPlugin.getWorkspace().getRoot().getProjects(); final List<String> paths = new ArrayList<String>(); try { for (final IProject project : projects) { final IJavaProject javaProject = JavaCore.create(project); if (javaProject != null && javaProject.exists() && isJunitEnabled(javaProject) && javaProject.isOpen() && !javaProject.isReadOnly()) { for (final IPackageFragmentRoot packageFragmentRoot : javaProject .getAllPackageFragmentRoots()) { if (!(packageFragmentRoot.isArchive() || packageFragmentRoot.isReadOnly())) { String sourcePath = packageFragmentRoot.getPath().toString(); sourcePath = sourcePath.replace(FORWARD_SLASH + project.getName(), "${project}"); if (filter == null || sourcePath.toUpperCase().contains(filter.toUpperCase())) { boolean include = true; for (final String path : paths) { if (path.equals(sourcePath)) { include = false; break; } } if (include) { paths.add(sourcePath); } } } } } } } catch (final JavaModelException ex) { ex.printStackTrace(); return new String[0][0]; } return getStringArrayFromList(paths, false); }
From source file:org.fastcode.util.SourceUtil.java
License:Open Source License
/** * @param workingJavaProject/*ww w .j a v a 2 s. c o m*/ * @param pkgFrgmRoots * @param allPackages * @param defaultPath * @throws JavaModelException */ private static void getPackagesForFragment(final IJavaProject workingJavaProject, final IPackageFragmentRoot[] pkgFrgmRoots, final List<IPackageFragment> allPackages, final String defaultPath) throws JavaModelException { for (final IPackageFragmentRoot packageFragmentRoot : pkgFrgmRoots) { if (!packageFragmentRoot.isArchive()) { for (final IJavaElement pkg : packageFragmentRoot.getChildren()) { if (pkg != null && !isEmpty(pkg.getElementName()) && pkg instanceof IPackageFragment && !(pkg instanceof IFolder)) { final IClassFile classFile[] = ((IPackageFragment) pkg).getClassFiles(); final GlobalSettings globalSettings = getInstance(); //final String defaultPath = getDefaultPathFromProject(workingJavaProject); /*String defaultPath = globalSettings.getSourcePathJava(); final String[][] entryNamesAndValues = getSourcePathsForProject(workingJavaProject.getElementName()); for (int i = 0; i < entryNamesAndValues.length; i++) { if (!entryNamesAndValues[i][0].trim().equals(EMPTY_STR)) { if (defaultPath.contains(entryNamesAndValues[i][0])) { defaultPath = entryNamesAndValues[i][0]; break; } } }*/ if (globalSettings.isUseDefaultForPath()) { if (((IPackageFragment) pkg).getPath().toString().contains(defaultPath)) { allPackages.add((IPackageFragment) pkg); } } else { allPackages.add((IPackageFragment) pkg); } } } } } }
From source file:org.hibernate.eclipse.jdt.ui.wizards.NewHibernateMappingFileWizard.java
License:Open Source License
public void init(IWorkbench workbench, IStructuredSelection selection) { Set<IJavaElement> filteredElements = new HashSet<IJavaElement>(); Object[] elements = selection.toArray(); for (int i = 0; i < elements.length; i++) { if (elements[i] instanceof JavaProject) { JavaProject project = (JavaProject) elements[i]; try { IPackageFragmentRoot[] roots = project.getPackageFragmentRoots(); for (int j = 0; j < roots.length; j++) { if (!roots[j].isArchive()) { IJavaElement[] rootChildren = roots[j].getChildren(); for (int k = 0; k < rootChildren.length; k++) { if (rootChildren[k] instanceof IPackageFragment) { IPackageFragment pkg = (IPackageFragment) rootChildren[k]; try { if (pkg.containsJavaResources()) filteredElements.add(rootChildren[k]); } catch (JavaModelException e1) { e1.printStackTrace(); }//from w w w .jav a 2 s . c o m } } } } } catch (JavaModelException e) { e.printStackTrace(); } } else if (elements[i] instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) elements[i]; if (!root.isArchive()) { try { IJavaElement[] rootChildren = root.getChildren(); for (int k = 0; k < rootChildren.length; k++) { if (rootChildren[k] instanceof IPackageFragment) { IPackageFragment pkg = (IPackageFragment) rootChildren[k]; try { if (pkg.containsJavaResources()) filteredElements.add(rootChildren[k]); } catch (JavaModelException e1) { e1.printStackTrace(); } } } } catch (JavaModelException e) { e.printStackTrace(); } } } else if (elements[i] instanceof ICompilationUnit) { ICompilationUnit cu = (ICompilationUnit) elements[i]; IType[] types; try { types = cu.getTypes(); //remove java extension. //String typeName = cu.getElementName().substring(0, cu.getElementName().length() - 5); for (int j = 0; j < types.length; j++) { //if (types[j].getElementName().equals(typeName)){ filteredElements.add(types[j]); // break; //} } } catch (JavaModelException e) { e.printStackTrace(); } } else if (elements[i] instanceof IJavaElement) { filteredElements.add((IJavaElement) elements[i]); } } this.selection = new StructuredSelection(filteredElements.toArray()); }
From source file:org.jboss.tools.arquillian.core.internal.builder.ArquillianBuilder.java
License:Open Source License
private List<ICompilationUnit> getCompilationUnits() throws JavaModelException { List<ICompilationUnit> units = new ArrayList<ICompilationUnit>(); IJavaProject javaProject = JavaCore.create(currentProject); if (ArquillianSearchEngine.hasArquillianType(javaProject)) { IClasspathEntry[] entries = javaProject.getRawClasspath(); for (IClasspathEntry entry : entries) { if (entry.getEntryKind() == IClasspathEntry.CPE_SOURCE) { IPackageFragmentRoot[] roots = javaProject.findPackageFragmentRoots(entry); for (IPackageFragmentRoot root : roots) { if (root.isArchive()) { continue; }/*from ww w .j av a 2 s.c o m*/ IJavaElement[] children = root.getChildren(); for (IJavaElement child : children) { if (child instanceof IPackageFragment) { IPackageFragment packageFragment = (IPackageFragment) child; ICompilationUnit[] cus = packageFragment.getCompilationUnits(); for (ICompilationUnit cu : cus) { if (!units.contains(cu) && ArquillianSearchEngine.isArquillianJUnitTest(cu, false, false)) { units.add(cu); } } } } } } } } return units; }
From source file:org.jboss.tools.as.sourcelookup.ui.actions.AttachSourcesActionDelegate.java
License:Open Source License
@Override public void setActiveEditor(IAction action, IEditorPart targetEditor) { if (targetEditor != null) { try {//from ww w . j a v a 2 s.c om boolean isAuto = SourceLookupActivator.getDefault().isAutoAddSourceContainer(); if (!isAuto) { return; } IClassFileEditorInput input = (IClassFileEditorInput) targetEditor.getEditorInput(); IJavaElement element = input.getClassFile(); while (element.getParent() != null) { element = element.getParent(); if (element instanceof IPackageFragmentRoot) { final IPackageFragmentRoot fragment = (IPackageFragmentRoot) element; IPath attachmentPath = fragment.getSourceAttachmentPath(); if (attachmentPath != null && !attachmentPath.isEmpty() && attachmentPath.toFile().exists()) { break; } if (fragment.isArchive()) { IFile iFile = ResourcesPlugin.getWorkspace().getRoot().getFile(fragment.getPath()); File file = iFile == null || iFile.getLocation() == null ? fragment.getPath().toFile() : iFile.getLocation().toFile(); ZipFile jar = new ZipFile(file); final ArtifactKey artifact = JBossSourceContainer.getArtifact(file, jar); if (artifact != null) { IPath sourcePath = JBossSourceContainer.getSourcePath(artifact); if (sourcePath == null || !sourcePath.toFile().exists()) { Job job = JBossSourceContainer.downloadArtifact(file, artifact); job.addJobChangeListener(new IJobChangeListener() { @Override public void sleeping(IJobChangeEvent event) { } @Override public void scheduled(IJobChangeEvent event) { } @Override public void running(IJobChangeEvent event) { } @Override public void done(IJobChangeEvent event) { IPath sourcePath = JBossSourceContainer.getSourcePath(artifact); if (sourcePath != null && sourcePath.toFile().exists()) { attachSource(fragment, sourcePath); } } @Override public void awake(IJobChangeEvent event) { } @Override public void aboutToRun(IJobChangeEvent event) { } }); job.schedule(); } else { attachSource(fragment, sourcePath); } } } } } } catch (Exception e) { SourceLookupUIActivator.log(e); } } }
From source file:org.jboss.tools.hibernate.jpt.core.internal.context.HibernatePersistenceUnit.java
License:Open Source License
@Override protected void validateProperties(List<IMessage> messages, IReporter reporter) { String configFile = this.hibernateProperties.getConfigurationFile(); if (configFile != null && configFile.length() > 0) { IPath path = new Path(configFile); try {//from ww w .ja v a 2s . c o m IJavaProject jp = getJpaProject().getJavaProject(); IPackageFragmentRoot[] pfrs = jp.getPackageFragmentRoots(); for (int i = 0; i < pfrs.length; i++) { if (pfrs[i].isArchive()) continue; if (((IContainer) pfrs[i].getResource()).findMember(path) != null) { return; } } } catch (JavaModelException e) { HibernateJptPlugin.logException(e); } IJavaProject jProject = getJpaProject().getJavaProject(); IResource res = null; if (jProject != null) { try { IPackageFragmentRoot[] allPackageFragmentRoots = jProject.getAllPackageFragmentRoots(); for (IPackageFragmentRoot iPackageFragmentRoot : allPackageFragmentRoots) { if (!iPackageFragmentRoot.isArchive()) { IResource sourceFolder = iPackageFragmentRoot.getResource(); if (sourceFolder instanceof IContainer) { IContainer folder = (IContainer) sourceFolder; if ((res = folder.findMember(path)) != null) { break; } } } } } catch (JavaModelException e) { //ignore } } if (res != null) { int resType = res.getType(); if (resType != IResource.FILE) { Property prop = getProperty(BasicHibernateProperties.HIBERNATE_CONFIG_FILE); IMessage message = HibernateJpaValidationMessage.buildMessage(IMessage.HIGH_SEVERITY, NOT_A_FILE, new String[] { configFile }, getResource()); message.setLineNo(prop.getValidationTextRange().getLineNumber()); messages.add(message); } } else { Property prop = getProperty(BasicHibernateProperties.HIBERNATE_CONFIG_FILE); IMessage message = HibernateJpaValidationMessage.buildMessage(IMessage.HIGH_SEVERITY, CONFIG_FILE_NOT_FOUND, new String[] { configFile }, getResource()); message.setLineNo(prop.getValidationTextRange().getLineNumber()); messages.add(message); } } }