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 void addPackagesFromResource(IJavaProject jProject, IResource res, Set<String> ignorePkgs) { if (res == null) return; try { IPackageFragmentRoot root = jProject.getPackageFragmentRoot(res); IJavaElement[] children = root.getChildren(); for (IJavaElement child : children) { String pkgName = child.getElementName(); if (child instanceof IParent) if (pkgName.length() > 0 && ((IParent) child).hasChildren()) ignorePkgs.add(child.getElementName()); } } catch (JavaModelException e) { } }
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())); }
private IClasspathEntry toClasspathEntry(EclipseSourceDirectory sourceFolder, IResource physicalLocation) { IPackageFragmentRoot fragmentRoot = this.project.getPackageFragmentRoot(physicalLocation); SourceFolderEntryBuilder builder = new SourceFolderEntryBuilder(this.project, fragmentRoot.getPath()); synchronizeAttributesFromModel(builder, sourceFolder); return builder.build(); }
private static void addSourceFolder(IBuildEntry buildEntry, IProject project, HashSet<IPath> paths, ArrayList<IClasspathEntry> result) throws CoreException { String[] folders = buildEntry.getTokens(); for (int j = 0; j < folders.length; j++) { String folder = folders[j]; IPath path = project.getFullPath().append(folder); if (paths.add(path)) { if (project.findMember(folder) == null) { CoreUtility.createFolder(project.getFolder(folder)); } else { IPackageFragmentRoot root = JavaCore.create(project).getPackageFragmentRoot(path.toString()); if (root.exists() && root.getKind() == IPackageFragmentRoot.K_BINARY) { result.add(root.getRawClasspathEntry()); continue; } } result.add(JavaCore.newSourceEntry(path)); } } }
/** * Creates and returns a compilation unit element for the given <code>.java</code> * file, its project being the given project. Returns <code>null</code> if unable * to recognize the compilation unit. */ public static ICompilationUnit createCompilationUnitFrom(IFile file, IJavaProject project) { if (file == null) return null; if (project == null) { project = JavaCore.create(file.getProject()); } IPackageFragment pkg = (IPackageFragment) determineIfOnClasspath(file, project); if (pkg == null) { // not on classpath - make the root its folder, and a default package PackageFragmentRoot root = (PackageFragmentRoot) project.getPackageFragmentRoot(file.getParent()); pkg = root.getPackageFragment(CharOperation.NO_STRINGS); if (VERBOSE){ System.out.println("WARNING : creating unit element outside classpath ("+ Thread.currentThread()+"): " + file.getFullPath()); //$NON-NLS-1$//$NON-NLS-2$ } } return pkg.getCompilationUnit(file.getName()); }
/** * Creates and returns a compilation unit element for the given <code>.java</code> * file, its project being the given project. Returns <code>null</code> if unable * to recognize the compilation unit. */ public static ICompilationUnit createCompilationUnitFrom(IFile file, IJavaProject project) { if (file == null) return null; if (project == null) { project = JavaCore.create(file.getProject()); } IPackageFragment pkg = (IPackageFragment) determineIfOnClasspath(file, project); if (pkg == null) { // not on classpath - make the root its folder, and a default package PackageFragmentRoot root = (PackageFragmentRoot) project.getPackageFragmentRoot(file.getParent()); pkg = root.getPackageFragment(CharOperation.NO_STRINGS); if (VERBOSE){ System.out.println("WARNING : creating unit element outside classpath ("+ Thread.currentThread()+"): " + file.getFullPath()); //$NON-NLS-1$//$NON-NLS-2$ } } return pkg.getCompilationUnit(file.getName()); }
@Override protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { if (fDoFlushChange) { IJavaProject javaProject= getEntryToEdit().getJavaProject(); BuildPathsBlock.flush(getExistingEntries(), getOutputLocation(), javaProject, null, monitor); IProject project= javaProject.getProject(); IPath path= getEntryToEdit().getPath(); IResource folder= project.getWorkspace().getRoot().findMember(path); fPackageFragmentRoot= javaProject.getPackageFragmentRoot(folder); } }
@Override protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { if (fDoFlushChange) { IJavaProject javaProject= getEntryToEdit().getJavaProject(); BuildPathsBlock.flush(getExistingEntries(), getOutputLocation(), javaProject, null, monitor); IProject project= javaProject.getProject(); IPath path= getEntryToEdit().getPath(); IResource folder= project.getWorkspace().getRoot().findMember(path); fPackageFragmentRoot= javaProject.getPackageFragmentRoot(folder); } }
private IPackageFragmentRoot getJARPackageFragmentRoot() throws CoreException { // try to find it as Java element (needed for external jars) IAdaptable adaptable= getElement(); IJavaElement elem= (IJavaElement) adaptable.getAdapter(IJavaElement.class); if (elem instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) elem; } // not on classpath or not in a java project IResource resource= (IResource) adaptable.getAdapter(IResource.class); if (resource instanceof IFile) { IProject proj= resource.getProject(); if (proj.hasNature(JavaCore.NATURE_ID)) { IJavaProject jproject= JavaCore.create(proj); return jproject.getPackageFragmentRoot(resource); } } return null; }
/** * {@inheritDoc} */ protected void finishPage(IProgressMonitor monitor) throws InterruptedException, CoreException { if (fDoFlushChange) { IJavaProject javaProject= getEntryToEdit().getJavaProject(); BuildPathsBlock.flush(getExistingEntries(), getOutputLocation(), javaProject, monitor); IProject project= javaProject.getProject(); IPath path= getEntryToEdit().getPath(); IResource folder= project.getWorkspace().getRoot().findMember(path); fPackageFragmentRoot= javaProject.getPackageFragmentRoot(folder); } }
private IPackageFragmentRoot getJARPackageFragmentRoot() throws CoreException { // try to find it as Java element (needed for external jars) IAdaptable adaptable= getElement(); IJavaElement elem= adaptable.getAdapter(IJavaElement.class); if (elem instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) elem; } // not on classpath or not in a java project IResource resource= adaptable.getAdapter(IResource.class); if (resource instanceof IFile) { IProject proj= resource.getProject(); if (proj.hasNature(JavaCore.NATURE_ID)) { IJavaProject jproject= JavaCore.create(proj); return jproject.getPackageFragmentRoot(resource); } } return null; }
private IPackageFragmentRoot getJARPackageFragmentRoot() throws CoreException { // try to find it as Java element (needed for external jars) IAdaptable adaptable= getElement(); IJavaElement elem= adaptable.getAdapter(IJavaElement.class); if (elem instanceof IPackageFragmentRoot) { return (IPackageFragmentRoot) elem; } // not on classpath or not in a java project IResource resource= adaptable.getAdapter(IResource.class); if (resource instanceof IFile) { IProject proj= resource.getProject(); if (proj.hasNature(JavaCore.NATURE_ID)) { IJavaProject jproject= JavaCore.create(proj); return jproject.getPackageFragmentRoot(resource); } } return null; }
public static IPackageFragmentRoot getSourceContainer(Shell shell, IWorkspaceRoot workspaceRoot, IJavaElement initElement) { SourceContainerDialog dialog= new SourceContainerDialog(shell); dialog.setInput(JavaCore.create(workspaceRoot)); dialog.setInitialSelection(initElement); 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; } }
public static IPackageFragmentRoot getSourceContainer(Shell shell, IWorkspaceRoot workspaceRoot, IJavaElement initElement) { SourceContainerDialog dialog= new SourceContainerDialog(shell); dialog.setInput(JavaCore.create(workspaceRoot)); dialog.setInitialSelection(initElement); 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; } }
public static IPackageFragmentRoot getSourceContainer(Shell shell, IWorkspaceRoot workspaceRoot, IJavaElement initElement) { SourceContainerDialog dialog= new SourceContainerDialog(shell); dialog.setInput(JavaCore.create(workspaceRoot)); dialog.setInitialSelection(initElement); 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; } }
private void addAllSourcePackages(IProject project, Set<String> list) { try { IJavaProject javaProject = JavaCore.create(project); IClasspathEntry[] classpath = javaProject.getRawClasspath(); for (IClasspathEntry entry : classpath) { 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 (IJavaElement element : children) { IPackageFragment frag = (IPackageFragment) element; if (frag.getChildren().length > 0 || frag.getNonJavaResources().length > 0) list.add(element.getElementName()); } } } } } catch (JavaModelException e) { } }
private IJavaElement getJavaElement() { IAdaptable adaptable= getElement(); IJavaElement elem= adaptable.getAdapter(IJavaElement.class); if (elem == null) { IResource resource= adaptable.getAdapter(IResource.class); //special case when the .jar is a file try { if (resource instanceof IFile && ArchiveFileFilter.isArchivePath(resource.getFullPath(), true)) { IProject proj= resource.getProject(); if (proj.hasNature(JavaCore.NATURE_ID)) { IJavaProject jproject= JavaCore.create(proj); elem= jproject.getPackageFragmentRoot(resource); // create a handle } } } catch (CoreException e) { JavaPlugin.log(e); } } return elem; }
private IJavaElement getJavaElement() { IAdaptable adaptable= getElement(); IJavaElement elem= (IJavaElement) adaptable.getAdapter(IJavaElement.class); if (elem == null) { IResource resource= (IResource) adaptable.getAdapter(IResource.class); //special case when the .jar is a file try { if (resource instanceof IFile && ArchiveFileFilter.isArchivePath(resource.getFullPath())) { IProject proj= resource.getProject(); if (proj.hasNature(JavaCore.NATURE_ID)) { IJavaProject jproject= JavaCore.create(proj); elem= jproject.getPackageFragmentRoot(resource); // create a handle } } } catch (CoreException e) { JavaPlugin.log(e); } } return elem; }
private IJavaElement getJavaElement() { IAdaptable adaptable= getElement(); IJavaElement elem= adaptable.getAdapter(IJavaElement.class); if (elem == null) { IResource resource= adaptable.getAdapter(IResource.class); //special case when the .jar is a file try { if (resource instanceof IFile && ArchiveFileFilter.isArchivePath(resource.getFullPath(), true)) { IProject proj= resource.getProject(); if (proj.hasNature(JavaCore.NATURE_ID)) { IJavaProject jproject= JavaCore.create(proj); elem= jproject.getPackageFragmentRoot(resource); // create a handle } } } catch (CoreException e) { JavaPlugin.log(e); } } return elem; }