List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getRawClasspathEntry
IClasspathEntry getRawClasspathEntry() throws JavaModelException;
From source file:org.limy.eclipse.qalab.common.LimyQalabJavaUtils.java
License:Open Source License
/** * PackageFragmentRoot?pX?B/*from ww w. jav a2s . com*/ * @param fragment PackageFragmentRoot * @return * @throws CoreException */ public static String getExternalLocation(IPackageFragmentRoot fragment) throws CoreException { String location = null; if (fragment.getKind() == IPackageFragmentRoot.K_SOURCE) { // v?WFNgQ?v?WFNg\?[XfBNg IPath outputLocation = fragment.getRawClasspathEntry().getOutputLocation(); if (outputLocation != null) { // \?[XpXL?o?w?? location = LimyQalabUtils.createFullPath(fragment.getJavaProject(), outputLocation); } else { // \?[XpXL?o?w???Av?WFNgftHg?o?gp location = LimyQalabUtils.createFullPath(fragment.getJavaProject(), fragment.getJavaProject().getOutputLocation()); } } else { // v?WFNgclasspathQ?v?WFNgExportCu IResource resource = fragment.getResource(); if (resource != null) { location = resource.getLocation().toString(); } else { // Variablewjart@Cresource = null IPath path = fragment.getRawClasspathEntry().getPath(); if (!path.toString().startsWith("org.eclipse.jdt.launching.JRE_CONTAINER")) { // JREOJARt@C?iVariablew?jNXpX location = fragment.getPath().toString(); } } } return location; }
From source file:org.maven.ide.eclipse.actions.DownloadSourcesAction.java
License:Apache License
public void run(IAction action) { IPackageFragmentRoot root = (IPackageFragmentRoot) this.selection.getFirstElement(); IJavaElement parent = root.getParent(); if (parent instanceof IJavaProject) { IJavaProject project = (IJavaProject) parent; try {/*from www . j a va2s . co m*/ IClasspathEntry classpathEntry = root.getRawClasspathEntry(); IClasspathContainer classpathContainer = JavaCore.getClasspathContainer(classpathEntry.getPath(), project); IClasspathEntry[] classpathEntries = classpathContainer.getClasspathEntries(); for (int i = 0; i < classpathEntries.length; i++) { IClasspathEntry entry = classpathEntries[i]; if (entry.getPath().equals(root.getPath())) { String actionDefinitionId = action.getActionDefinitionId(); String id = action.getId(); System.err.println("### DownloadSourcesAction.run()"); } } } catch (JavaModelException ex) { // } } }
From source file:org.nuxeo.ide.sdk.java.ClasspathEditor.java
License:Open Source License
/** * Extends classpath target project with src folder * * @param name/*ww w . j a v a 2s . c om*/ * @throws JavaModelException */ public void extendClasspath(String name) throws JavaModelException { IProject project = java.getProject(); IFolder folder = project.getFolder("src/main/" + name); IPackageFragmentRoot root = java.getPackageFragmentRoot(folder); if (root.exists()) { IClasspathEntry entry = root.getRawClasspathEntry(); if (entry.getOutputLocation() != null) { return; } entries.remove(entry); } // extend project class path IFolder binFolder = project.getFolder("bin/" + name); IClasspathEntry newEntry = JavaCore.newSourceEntry(folder.getFullPath(), new IPath[0], new IPath[0], binFolder.getFullPath()); entries.add(newEntry); dirty = true; }
From source file:org.nuxeo.ide.sdk.java.ProjectDeployer.java
License:Open Source License
protected void copy(IProgressMonitor monitor, Appendable devbundle) throws CoreException, IOException, StorageException, BackingStoreException { devFolder.delete(true, monitor);// w ww . j a va 2s . c o m devFolder.create(IResource.FORCE | IResource.DERIVED, true, monitor); mainFolder.create(IResource.FORCE | IResource.DERIVED, true, monitor); seamFolder.create(IResource.FORCE | IResource.DERIVED, true, monitor); mergeOutputLocation(project.getOutputLocation(), monitor); for (IPackageFragmentRoot root : project.getPackageFragmentRoots()) { if (root.getKind() != IPackageFragmentRoot.K_SOURCE) { continue; } if (!"main".equals(root.getCorrespondingResource().getParent().getName())) { continue; } IPath outputLocation = root.getRawClasspathEntry().getOutputLocation(); if (outputLocation != null) { if (outputLocation.lastSegment().equals("test-classes")) { continue; } mergeOutputLocation(outputLocation, monitor); } copyRoot(root, monitor); } if (mainFolder.members().length != 0) { devbundle.append("bundle:" + mainFolder.getLocation().toOSString()).append("\n"); } if (seamFolder.members().length != 0) { devbundle.append("seam:" + seamFolder.getLocation().toOSString()).append("\n"); } IFolder l10n = project.getProject().getFolder("src/main/resources/OSGI-INF/l10n"); if (l10n.exists()) { for (IResource m : l10n.members()) { if (IResource.FILE == m.getType()) { devbundle.append("resourceBundleFragment:").append(m.getLocation().toOSString()).append("\n"); } } } IConnectProvider connectProvider = SDKPlugin.getDefault().getConnectProvider(); if (connectProvider != null) { for (IConnectProvider.Infos infos : SDKPlugin.getDefault().getConnectProvider() .getLibrariesInfos(project.getProject(), monitor)) { devbundle.append("bundle:").append(infos.file.getPath()).append("\n"); } } }
From source file:org.nuxeo.ide.sdk.java.ProjectDeployer.java
License:Open Source License
protected void moveSeamCompilationUnit(IPackageFragmentRoot root, ICompilationUnit unit, IProgressMonitor monitor) throws JavaModelException, CoreException { if (!isSeam(unit)) { return;/* www .ja va2 s. com*/ } IPath outputLocation = root.getRawClasspathEntry().getOutputLocation(); if (outputLocation == null) { outputLocation = project.getOutputLocation(); } IPath path = unit.getPath().removeFirstSegments(root.getPath().segmentCount()).removeLastSegments(1); path = path.append( org.eclipse.jdt.internal.core.util.Util.getNameWithoutJavaLikeExtension(unit.getElementName()) + ".class"); IResource mainMember = mainFolder.findMember(path); if (mainMember == null) { throw new Error("Cannot find binary class " + path + " in project " + project.getElementName()); } IResource seamMember = seamFolder.findMember(path); if (seamMember != null) { seamMember.delete(true, monitor); } seamMember = seamFolder.getFile(path); mkdirs((IFolder) seamMember.getParent(), monitor); mainMember.move(seamMember.getFullPath(), IResource.FORCE | IResource.HIDDEN | IResource.DERIVED, monitor); }
From source file:org.org.eclipse.dws.core.internal.jobs.UpdateJavadocAndSourcesJob.java
License:Open Source License
/** * Update sources.// w ww .java 2s .co m * * @param project * the project * @param packageFragmentRoot * the package fragment root * @param file * the file * @param monitor * the monitor */ @SuppressWarnings("restriction") private void updateSources(IJavaProject project, IPackageFragmentRoot packageFragmentRoot, File file, IProgressMonitor monitor) { try { logger.info("updating source attachment of " + packageFragmentRoot.getElementName() + " with " + file); IClasspathEntry rawClasspathEntry = packageFragmentRoot.getRawClasspathEntry(); IPath containerPath = null; if (rawClasspathEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { containerPath = rawClasspathEntry.getPath(); rawClasspathEntry = handleContainerEntry(containerPath, project, packageFragmentRoot.getPath()); } CPListElement cpElem = CPListElement.createFromExisting(rawClasspathEntry, project); String loc = file.getAbsolutePath(); cpElem.setAttribute(CPListElement.SOURCEATTACHMENT, Path.fromOSString(loc).makeAbsolute()); IClasspathEntry newEntry = cpElem.getClasspathEntry(); String[] changedAttributes = { CPListElement.SOURCEATTACHMENT }; BuildPathSupport.modifyClasspathEntry(null, newEntry, changedAttributes, project, containerPath, true, monitor); } catch (JavaModelException e) { throw new MavenRepositoryInteractionException( "Impossible to attach source jar:" + file.getAbsolutePath(), e); } catch (CoreException e) { throw new MavenRepositoryInteractionException( "Impossible to attach source jar:" + file.getAbsolutePath(), e); } }
From source file:org.org.eclipse.dws.core.internal.jobs.UpdateJavadocAndSourcesJob.java
License:Open Source License
/** * Update javadoc./*from w w w . j a v a 2 s . com*/ * * @param project * the project * @param packageFragmentRoot * the package fragment root * @param file * the file * @param monitor * the monitor * * @throws CoreException * the core exception */ @SuppressWarnings("restriction") private void updateJavadoc(IJavaProject project, IPackageFragmentRoot packageFragmentRoot, File file, IProgressMonitor monitor) throws CoreException { try { logger.info("updating javadoc location of " + packageFragmentRoot.getElementName() + " with " + file); IClasspathEntry rawClasspathEntry = packageFragmentRoot.getRawClasspathEntry(); IPath containerPath = null; if (rawClasspathEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { containerPath = rawClasspathEntry.getPath(); rawClasspathEntry = handleContainerEntry(containerPath, project, packageFragmentRoot.getPath()); } CPListElement cpElem = CPListElement.createFromExisting(rawClasspathEntry, project); String loc = "jar:file:/" + file.getAbsolutePath() + "!/"; cpElem.setAttribute(CPListElement.JAVADOC, loc); IClasspathEntry newEntry = cpElem.getClasspathEntry(); String[] changedAttributes = { CPListElement.JAVADOC }; BuildPathSupport.modifyClasspathEntry(null, newEntry, changedAttributes, project, containerPath, true, monitor); } catch (JavaModelException e) { throw new MavenRepositoryInteractionException( "Impossible to set javadoc location:" + file.getAbsolutePath(), e); } catch (CoreException e) { throw new MavenRepositoryInteractionException( "Impossible to set javadoc location:" + file.getAbsolutePath(), e); } }
From source file:org.org.eclipse.dws.ui.internal.wizards.pages.DependenciesFromClasspathPage.java
License:Open Source License
/** * Checks if is possible dependency./*w w w. java 2s . c om*/ * * @param packageFragmentRoot * the package fragment root * * @return the boolean * * @throws JavaModelException * the java model exception */ private Boolean isPossibleDependency(IPackageFragmentRoot packageFragmentRoot) throws JavaModelException { boolean isArchive = packageFragmentRoot.isArchive(); int entryKind = packageFragmentRoot.getRawClasspathEntry().getEntryKind(); boolean isFiltered = isFiltered(packageFragmentRoot); return isArchive && (entryKind != IClasspathEntry.CPE_PROJECT) && entryKind != IClasspathEntry.CPE_SOURCE && !isFiltered; }
From source file:org.org.eclipse.dws.ui.internal.wizards.pages.LookupJavadocAndSourcesForLibrariesInClasspathPage.java
License:Open Source License
/** * Checks if is library with missing javadoc or source. * //from w w w.j a v a2 s. c om * @param packageFragmentRoot * the package fragment root * * @return the boolean * * @throws JavaModelException * the java model exception */ private Boolean isLibraryWithMissingJavadocOrSource(IPackageFragmentRoot packageFragmentRoot) throws JavaModelException { boolean isArchive = packageFragmentRoot.isArchive(); int entryKind = packageFragmentRoot.getRawClasspathEntry().getEntryKind(); boolean isFiltered = isFiltered(packageFragmentRoot); boolean missesSources = missesSources(packageFragmentRoot); boolean missesJavadoc = missesJavadoc(packageFragmentRoot); return isArchive && (entryKind != IClasspathEntry.CPE_PROJECT) && entryKind != IClasspathEntry.CPE_SOURCE && !isFiltered && (missesJavadoc || missesSources); }
From source file:org.org.eclipse.dws.ui.internal.wizards.pages.LookupJavadocAndSourcesForLibrariesInClasspathPage.java
License:Open Source License
/** * Misses javadoc.// ww w .j a v a 2 s .c om * * @param packageFragmentRoot * the package fragment root * * @return true, if successful * * @throws JavaModelException * the java model exception */ private boolean missesJavadoc(IPackageFragmentRoot packageFragmentRoot) throws JavaModelException { int entryKind = packageFragmentRoot.getRawClasspathEntry().getEntryKind(); boolean missesJavadoc = false; if (entryKind == IClasspathEntry.CPE_LIBRARY || entryKind == IClasspathEntry.CPE_VARIABLE) { missesJavadoc = JavaUI.getLibraryJavadocLocation(packageFragmentRoot.getRawClasspathEntry()) == null; } if (entryKind == IClasspathEntry.CPE_CONTAINER) { missesJavadoc = JavaUI.getJavadocLocation(packageFragmentRoot.getPrimaryElement(), false) == null; } return missesJavadoc; }