public Object getParent(Object element) { IJavaElement parent= ((IJavaElement)element).getParent(); if (parent instanceof IPackageFragmentRoot) { IPackageFragmentRoot root= (IPackageFragmentRoot) parent; if (root.getPath().equals(root.getJavaProject().getProject().getFullPath())) { return root.getJavaProject(); } } return parent; }
private void collectCompilationUnits(IPackageFragmentRoot root, Collection<IJavaElement> result, String prefix) throws JavaModelException { if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { IJavaElement[] children = root.getChildren(); for (int i = 0; i < children.length; i++) { IPackageFragment pack = (IPackageFragment) children[i]; if (StringUtils.isBlank(prefix) || pack.getElementName().indexOf(prefix) >= 0) { collectCompilationUnits(pack, result); } } } }
private Object findNextLevelParentByElementName(IPackageFragment child) { String name= child.getElementName(); int index= name.lastIndexOf('.'); if (index != -1) { String realParentName= name.substring(0, index); IPackageFragment element= ((IPackageFragmentRoot) child.getParent()).getPackageFragment(realParentName); if (element.exists()) { return element; } } return child.getParent(); }
@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; } });
private boolean isWritable(IPackageFragmentRoot packageFragmentRoot) { try { return packageFragmentRoot.exists() && ! packageFragmentRoot.isArchive() && ! packageFragmentRoot.isReadOnly() && packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE; } catch (JavaModelException e) { return false; } }
private int getClassPathIndex(IPackageFragmentRoot root) { try { IPath rootPath= root.getPath(); IPackageFragmentRoot[] roots= root.getJavaProject().getPackageFragmentRoots(); for (int i= 0; i < roots.length; i++) { if (roots[i].getPath().equals(rootPath)) { return i; } } } catch (JavaModelException e) { } return Integer.MAX_VALUE; }
private void createPackageFragmentRoot(IPackageFragmentRoot root) throws CoreException { final IJavaProject project= root.getJavaProject(); if (!project.exists()) { // createJavaProject(project.getProject()); } final IFolder folder= project.getProject().getFolder(root.getElementName()); if (!folder.exists()) { ResourceUtil.createFolder(folder, true, true, new NullProgressMonitor()); } final List<IClasspathEntry> list= Arrays.asList(project.getRawClasspath()); list.add(JavaCore.newSourceEntry(folder.getFullPath())); project.setRawClasspath(list.toArray(new IClasspathEntry[list.size()]), new NullProgressMonitor()); }
public static boolean isClasspathDelete(IPackageFragmentRoot pkgRoot) { IResource res= pkgRoot.getResource(); if (res == null) return true; IProject definingProject= res.getProject(); if (res.getParent() != null && pkgRoot.isArchive() && ! res.getParent().equals(definingProject)) return true; IProject occurringProject= pkgRoot.getJavaProject().getProject(); return !definingProject.equals(occurringProject); }
public static IContainer getOutputContainer(IProject project, IPackageFragmentRoot sourceContainer) { try { IJavaProject jProject = JavaCore.create(project); IPath outputPath = sourceContainer.getRawClasspathEntry().getOutputLocation(); if (outputPath == null) { if (jProject.getOutputLocation().segmentCount() == 1) return project; return project.getFolder(jProject.getOutputLocation().removeFirstSegments(1)); } return project.getFolder(outputPath.removeFirstSegments(1)); } catch (Exception e) { } return null; }
protected URI computeTraceURI(URI uri, IJavaProject javaProject) throws JavaModelException { for (IPackageFragmentRoot root : javaProject.getPackageFragmentRoots()) if (root.getKind() == IPackageFragmentRoot.K_SOURCE) { URI prefix = URI.createPlatformResourceURI(root.getResource().getFullPath().addTrailingSeparator().toString(), true); if (isPrefix(prefix, uri)) return uri.deresolve(prefix).trimFragment().trimQuery(); } return super.getURIForTrace(uri); } }
public static URI getUriForPackageFragmentRoot(IPackageFragmentRoot root) { IResource underlyingResource = root.getResource(); if (underlyingResource == null) { return URI.createFileURI(root.getPath().toString()); } else { return URI.createPlatformResourceURI(underlyingResource.getFullPath().toString(), true); } }
public static IJavaSearchScope createSeachScope(IJavaProject jProject) throws JavaModelException { IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); ArrayList<IPackageFragmentRoot> filteredRoots = new ArrayList<>(); for (int i = 0; i < roots.length; i++) { if (roots[i].getResource() != null && roots[i].getResource().getProject().equals(jProject.getProject())) { filteredRoots.add(roots[i]); } } return SearchEngine.createJavaSearchScope(filteredRoots.toArray(new IJavaElement[filteredRoots.size()])); }
public static void addFolderToClasspath(IJavaProject project, String folderName, boolean create, IProgressMonitor monitor) throws JavaModelException, CoreException { List<IClasspathEntry> list = new ArrayList<IClasspathEntry>(); list.addAll(Arrays.asList(project.getRawClasspath())); IFolder folder = project.getProject().getFolder(folderName); if (create || folder.exists()) { if (create) createFolder(folder, monitor); IPackageFragmentRoot ipackagefragmentroot = project.getPackageFragmentRoot(folder); list.add(JavaCore.newSourceEntry(ipackagefragmentroot.getPath())); project.setRawClasspath((IClasspathEntry[]) list.toArray(new IClasspathEntry[list.size()]), null); } }
private static IPackageFragmentRoot[] getRoots(IJavaProject jProject) { ArrayList<IPackageFragmentRoot> result = new ArrayList<>(); try { IPackageFragmentRoot[] roots = jProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE || jProject.getProject().equals(roots[i].getCorrespondingResource()) || (roots[i].isArchive() && !roots[i].isExternal())) { result.add(roots[i]); } } } catch (JavaModelException e) { } return result.toArray(new IPackageFragmentRoot[result.size()]); }
protected List<String> getPackageFragmentRootHandles(IJavaProject project) { List<String> result = Lists.newArrayList(); try { IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); for (IPackageFragmentRoot root : roots) { if (root != null && !JavaRuntime.newDefaultJREContainerPath().isPrefixOf(root.getRawClasspathEntry().getPath())) { result.add(root.getHandleIdentifier()); } } } catch (JavaModelException e) { if (!e.isDoesNotExist()) { log.error("Cannot find rootHandles in project " + project.getProject().getName(), e); } } return result; }
public IPackageFragmentRoot[] getDirectRoots() { ArrayList<IPackageFragmentRoot> result = new ArrayList<>(); try { IPackageFragmentRoot[] roots = JavaCore.create(fProject).getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE || (roots[i].isArchive() && !roots[i].isExternal())) { result.add(roots[i]); } } } catch (JavaModelException e) { } return result.toArray(new IPackageFragmentRoot[result.size()]); }
/** * Tests if the package fragment root is located on the project. * * @param root the package fragment root * @return returns <code>true</code> if the package fragment root is the located on the project */ protected boolean isProjectPackageFragmentRoot(IPackageFragmentRoot root) { IJavaProject javaProject= root.getJavaProject(); return javaProject != null && javaProject.getPath().equals(root.getPath()); }
/** * <jar path>/<package name>/<file name> */ public IPath getFullPath() { IPackageFragment pkg = (IPackageFragment)classFile.getParent(); IPackageFragmentRoot jar = (IPackageFragmentRoot)pkg.getParent(); String pkgName = pkg.getElementName(); IPath jarPath = jar.getPath(); IPath filePath = jarPath.append(pkgName).append(getName()); return filePath; }
protected void addSourceFolder(IJavaProject project, List<IClasspathEntry> list, String s, IProgressMonitor monitor) throws CoreException { IFolder folder = project.getProject().getFolder(s); FileUtils.createFolder(folder, monitor); IPackageFragmentRoot ipackagefragmentroot = project.getPackageFragmentRoot(folder); list.add(JavaCore.newSourceEntry(ipackagefragmentroot.getPath())); }
@Override public String getOperationName() { StringBuilder sb = new StringBuilder("write "); sb.append(getSourceFolder().getPath().toString()).append('/'); if (!getPackageName().isEmpty()) { sb.append(getPackageName().replace('.', '/')).append('/'); } sb.append(getFileName()); return sb.toString(); }