List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getElementName
String getElementName();
From source file:org.eclipse.ajdt.internal.buildpath.UpdateAspectpathRestriction.java
License:Open Source License
public void selectionChanged(IAction action, ISelection sel) { boolean enable = false; if (sel instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) sel; Object element = selection.getFirstElement(); try {/* ww w.java 2s . co m*/ if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; project = root.getJavaProject().getProject(); cpEntry = root.getRawClasspathEntry(); if (cpEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { fileName = root.getElementName(); enable = AspectJCorePreferences.isOnAspectpath(cpEntry); } else { fileName = null; cpEntry = null; project = null; enable = false; } } else { enable = false; } } catch (JavaModelException e) { } action.setEnabled(enable); } }
From source file:org.eclipse.ajdt.internal.buildpath.UpdateInpathRestriction.java
License:Open Source License
public void selectionChanged(IAction action, ISelection sel) { boolean enable = false; if (sel instanceof IStructuredSelection) { IStructuredSelection selection = (IStructuredSelection) sel; Object element = selection.getFirstElement(); try {/* w w w . j ava2s . c om*/ if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; project = root.getJavaProject().getProject(); cpEntry = root.getRawClasspathEntry(); if (cpEntry.getEntryKind() == IClasspathEntry.CPE_CONTAINER) { fileName = root.getElementName(); enable = AspectJCorePreferences.isOnInpath(cpEntry); } else { fileName = null; cpEntry = null; project = null; enable = false; } } else { enable = false; } } catch (JavaModelException e) { } action.setEnabled(enable); } }
From source file:org.eclipse.ajdt.internal.launching.LTWUtils.java
License:Open Source License
/** * Generate one aop-ajc.xml file for each source directory in the given project. * The aop-ajc.xml files will list all concrete aspects included in the active * build configuration./*from www. j av a2s .co m*/ * @param project */ public static void generateLTWConfigFile(IJavaProject project) { try { // Get all the source folders in the project IPackageFragmentRoot[] roots = project.getAllPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { IPackageFragmentRoot root = roots[i]; if (!(root instanceof JarPackageFragmentRoot) && root.getJavaProject().equals(project)) { List aspects = getAspects(root); String path; if (root.getElementName().trim().equals("")) { //$NON-NLS-1$ path = AOP_XML_LOCATION; } else { path = root.getElementName().trim().concat("/").concat(AOP_XML_LOCATION); //$NON-NLS-1$ } IFile ltwConfigFile = (IFile) project.getProject().findMember(path); // If the source folder does not already contain an aop-ajc.xml file: if (ltwConfigFile == null) { if (aspects.size() != 0) { // If there are aspects in the list // Create the META-INF folder and the aop-ajc.xml file IFolder metainf = (IFolder) ((Workspace) ResourcesPlugin.getWorkspace()).newResource( project.getPath().append("/" + root.getElementName() + "/META-INF"), //$NON-NLS-1$ //$NON-NLS-2$ IResource.FOLDER); IFile aopFile = (IFile) ((Workspace) ResourcesPlugin.getWorkspace()) .newResource(project.getPath().append(path), IResource.FILE); if (metainf == null || !metainf.exists()) { metainf.create(true, true, null); } aopFile.create(new ByteArrayInputStream(new byte[0]), true, null); project.getProject().refreshLocal(4, null); // Add the xml content to the aop-ajc.xml file addAspectsToLTWConfigFile(false, aspects, aopFile); copyToOutputFolder(aopFile, project, root.getRawClasspathEntry()); } // Otherwise update the existing file } else { addAspectsToLTWConfigFile(true, aspects, ltwConfigFile); copyToOutputFolder(ltwConfigFile, project, root.getRawClasspathEntry()); } } } } catch (Exception e) { } }
From source file:org.eclipse.ajdt.internal.ui.wizards.exports.AJJarFileExportOperation.java
License:Open Source License
/** * Exports the passed resource to the JAR file * * @param element the resource or JavaElement to export *///from w w w.jav a2 s . c o m protected void exportElement(Object element, IProgressMonitor progressMonitor) throws InterruptedException { // AspectJ Change Begin if (!AspectJPlugin.USING_CU_PROVIDER) { // Don't export AJCompilationUnits because they are duplicates of files that we also export. if (element instanceof AJCompilationUnit) { return; } } // AspectJ Change End int leadSegmentsToRemove = 1; IPackageFragmentRoot pkgRoot = null; boolean isInJavaProject = false; IResource resource = null; IJavaProject jProject = null; if (element instanceof IJavaElement) { isInJavaProject = true; IJavaElement je = (IJavaElement) element; int type = je.getElementType(); if (type != IJavaElement.CLASS_FILE && type != IJavaElement.COMPILATION_UNIT) { exportJavaElement(progressMonitor, je); return; } try { resource = je.getUnderlyingResource(); } catch (JavaModelException ex) { addWarning(Messages.format(JarPackagerMessages.JarFileExportOperation_resourceNotFound, je.getElementName()), ex); return; } jProject = je.getJavaProject(); pkgRoot = JavaModelUtil.getPackageFragmentRoot(je); } else resource = (IResource) element; if (!resource.isAccessible()) { addWarning(Messages.format(JarPackagerMessages.JarFileExportOperation_resourceNotFound, resource.getFullPath()), null); return; } if (resource.getType() == IResource.FILE) { if (!isInJavaProject) { // check if it's a Java resource try { isInJavaProject = resource.getProject().hasNature(JavaCore.NATURE_ID); } catch (CoreException ex) { addWarning( Messages.format(JarPackagerMessages.JarFileExportOperation_projectNatureNotDeterminable, resource.getFullPath()), ex); return; } if (isInJavaProject) { jProject = JavaCore.create(resource.getProject()); try { IPackageFragment pkgFragment = jProject .findPackageFragment(resource.getFullPath().removeLastSegments(1)); if (pkgFragment != null) pkgRoot = JavaModelUtil.getPackageFragmentRoot(pkgFragment); else pkgRoot = findPackageFragmentRoot(jProject, resource.getFullPath().removeLastSegments(1)); } catch (JavaModelException ex) { addWarning(Messages.format( JarPackagerMessages.JarFileExportOperation_javaPackageNotDeterminable, resource.getFullPath()), ex); return; } } } if (pkgRoot != null && jProject != null) { leadSegmentsToRemove = pkgRoot.getPath().segmentCount(); boolean isOnBuildPath; isOnBuildPath = jProject.isOnClasspath(resource); if (!isOnBuildPath || (mustUseSourceFolderHierarchy() && !pkgRoot.getElementName().equals(IPackageFragmentRoot.DEFAULT_PACKAGEROOT_PATH))) leadSegmentsToRemove--; } IPath destinationPath = resource.getFullPath().removeFirstSegments(leadSegmentsToRemove); boolean isInOutputFolder = false; if (isInJavaProject && jProject != null) { try { isInOutputFolder = jProject.getOutputLocation().isPrefixOf(resource.getFullPath()); } catch (JavaModelException ex) { isInOutputFolder = false; } } exportClassFiles(progressMonitor, pkgRoot, resource, jProject, destinationPath); exportResource(progressMonitor, pkgRoot, isInJavaProject, resource, destinationPath, isInOutputFolder); progressMonitor.worked(1); ModalContext.checkCanceled(progressMonitor); } else exportContainer(progressMonitor, (IContainer) resource); }
From source file:org.eclipse.andmore.wizards.buildingblocks.ElementTreeValidator.java
License:Apache License
@Override public boolean isSelectedValid(Object element) { boolean isValid = false; try {//from ww w . jav a 2 s. c o m if (element instanceof IJavaProject) { IJavaProject jproject = (IJavaProject) element; IPath path = jproject.getProject().getFullPath(); isValid = (jproject.findPackageFragmentRoot(path) != null); } else if (element instanceof IPackageFragmentRoot) { IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) element; boolean isSrc = (packageFragmentRoot.getKind() == IPackageFragmentRoot.K_SOURCE); boolean isGen = packageFragmentRoot.getElementName().equals(IAndroidConstants.GEN_SRC_FOLDER) && (packageFragmentRoot.getParent() instanceof IJavaProject); isValid = isSrc && !isGen; } else { isValid = true; } } catch (JavaModelException e) { AndmoreLogger.error(ElementTreeValidator.class, e.getLocalizedMessage(), e); } return isValid; }
From source file:org.eclipse.che.jdt.internal.core.SourceMapper.java
License:Open Source License
private synchronized void computeAllRootPaths(IType type) { if (this.areRootPathsComputed) { return;//from w ww .ja v a2s . c o m } IPackageFragmentRoot root = (IPackageFragmentRoot) type.getPackageFragment().getParent(); IPath pkgFragmentRootPath = root.getPath(); final HashSet tempRoots = new HashSet(); long time = 0; if (VERBOSE) { System.out.println("compute all root paths for " + root.getElementName()); //$NON-NLS-1$ time = System.currentTimeMillis(); } final HashSet firstLevelPackageNames = new HashSet(); boolean containsADefaultPackage = false; boolean containsJavaSource = !pkgFragmentRootPath.equals(this.sourcePath); // used to optimize zip file reading only if source path and root path are equals, otherwise // assume that attachment contains Java source String sourceLevel = null; String complianceLevel = null; if (root.isArchive()) { // org.eclipse.jdt.internal.core.JavaModelManager manager = org.eclipse.jdt.internal.core.JavaModelManager.getJavaModelManager(); ZipFile zip = null; try { zip = manager.getZipFile(pkgFragmentRootPath); for (Enumeration entries = zip.entries(); entries.hasMoreElements();) { ZipEntry entry = (ZipEntry) entries.nextElement(); String entryName = entry.getName(); if (!entry.isDirectory()) { if (org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(entryName)) { int index = entryName.indexOf('/'); if (index != -1) { String firstLevelPackageName = entryName.substring(0, index); if (!firstLevelPackageNames.contains(firstLevelPackageName)) { if (sourceLevel == null) { IJavaProject project = root.getJavaProject(); sourceLevel = project.getOption(JavaCore.COMPILER_SOURCE, true); complianceLevel = project.getOption(JavaCore.COMPILER_COMPLIANCE, true); } IStatus status = Status.OK_STATUS;// JavaConventions // .validatePackageName(firstLevelPackageName, sourceLevel, complianceLevel); if (status.isOK() || status.getSeverity() == IStatus.WARNING) { firstLevelPackageNames.add(firstLevelPackageName); } } } else { containsADefaultPackage = true; } } else if (!containsJavaSource && org.eclipse.che.jdt.internal.core.util.Util.isJavaLikeFileName(entryName)) { containsJavaSource = true; } } } } catch (CoreException e) { // ignore } finally { manager.closeZipFile(zip); // handle null case } } /*else { Object target = JavaModel.getTarget(root.getPath(), true); if (target instanceof IResource) { IResource resource = (IResource) target; if (resource instanceof IContainer) { try { IResource[] members = ((IContainer) resource).members(); for (int i = 0, max = members.length; i < max; i++) { IResource member = members[i]; String resourceName = member.getName(); if (member.getType() == IResource.FOLDER) { if (sourceLevel == null) { IJavaProject project = root.getJavaProject(); sourceLevel = project.getOption(JavaCore.COMPILER_SOURCE, true); complianceLevel = project.getOption(JavaCore.COMPILER_COMPLIANCE, true); } IStatus status = JavaConventions.validatePackageName(resourceName, sourceLevel, complianceLevel); if (status.isOK() || status.getSeverity() == IStatus.WARNING) { firstLevelPackageNames.add(resourceName); } } else if (org.eclipse.jdt.internal.compiler.util.Util.isClassFileName(resourceName)) { containsADefaultPackage = true; } else if (!containsJavaSource && Util.isJavaLikeFileName(resourceName)) { containsJavaSource = true; } } } catch (CoreException e) { // ignore } } } }*/ if (containsJavaSource) { // no need to read source attachment if it contains no Java source (see https://bugs.eclipse // .org/bugs/show_bug.cgi?id=190840 ) // Object target = JavaModel.getTarget(this.sourcePath, true); // if (target instanceof IContainer) { // IContainer folder = (IContainer)target; // computeRootPath(folder, firstLevelPackageNames, containsADefaultPackage, tempRoots, folder.getFullPath().segmentCount() // /*if external folder, this is the linked folder path*/); // } else { // JavaModelManager // manager = JavaModelManager.getJavaModelManager(); ZipFile zip = null; try { zip = manager.getZipFile(this.sourcePath); for (Enumeration entries = zip.entries(); entries.hasMoreElements();) { ZipEntry entry = (ZipEntry) entries.nextElement(); String entryName; if (!entry.isDirectory() && Util.isJavaLikeFileName(entryName = entry.getName())) { IPath path = new Path(entryName); int segmentCount = path.segmentCount(); if (segmentCount > 1) { for (int i = 0, max = path.segmentCount() - 1; i < max; i++) { if (firstLevelPackageNames.contains(path.segment(i))) { tempRoots.add(path.uptoSegment(i)); // don't break here as this path could contain other first level package names (see https://bugs // .eclipse.org/bugs/show_bug.cgi?id=74014) } if (i == max - 1 && containsADefaultPackage) { tempRoots.add(path.uptoSegment(max)); } } } else if (containsADefaultPackage) { tempRoots.add(new Path("")); //$NON-NLS-1$ } } } } catch (CoreException e) { // ignore } finally { manager.closeZipFile(zip); // handle null case } // } } int size = tempRoots.size(); if (this.rootPaths != null) { for (Iterator iterator = this.rootPaths.iterator(); iterator.hasNext();) { tempRoots.add(new Path((String) iterator.next())); } this.rootPaths.clear(); } else { this.rootPaths = new ArrayList(size); } size = tempRoots.size(); if (size > 0) { ArrayList sortedRoots = new ArrayList(tempRoots); if (size > 1) { Collections.sort(sortedRoots, new Comparator() { public int compare(Object o1, Object o2) { IPath path1 = (IPath) o1; IPath path2 = (IPath) o2; return path1.segmentCount() - path2.segmentCount(); } }); } for (Iterator iter = sortedRoots.iterator(); iter.hasNext();) { IPath path = (IPath) iter.next(); this.rootPaths.add(path.toString()); } } this.areRootPathsComputed = true; if (VERBOSE) { System.out.println("Spent " + (System.currentTimeMillis() - time) + "ms"); //$NON-NLS-1$ //$NON-NLS-2$ System.out.println("Found " + size + " root paths"); //$NON-NLS-1$ //$NON-NLS-2$ int i = 0; for (Iterator iterator = this.rootPaths.iterator(); iterator.hasNext();) { System.out.println("root[" + i + "]=" + ((String) iterator.next()));//$NON-NLS-1$ //$NON-NLS-2$ i++; } } }
From source file:org.eclipse.che.jdt.refactoring.ccp.MoveTest.java
License:Open Source License
@Test @Ignore// w ww . ja va 2s . c om public void testDestination_yes_sourceFolderToOtherProject() throws Exception { ParticipantTesting.reset(); IJavaProject otherJavaProject = JavaProjectHelper.createJavaProject("other", "bin"); IPackageFragmentRoot oldRoot = JavaProjectHelper.addSourceContainer(RefactoringTestSetup.getProject(), "newSrc"); try { IJavaElement[] javaElements = { oldRoot }; IResource[] resources = {}; String[] handles = ParticipantTesting.createHandles(new Object[] { oldRoot, oldRoot.getResource() }); JavaMoveProcessor ref = verifyEnabled(resources, javaElements, createReorgQueries()); Object destination = otherJavaProject; verifyValidDestination(ref, destination); assertTrue("folder does not exist before", oldRoot.exists()); RefactoringStatus status = performRefactoring(ref, false); assertEquals(null, status); assertTrue("folder not moved", !oldRoot.getResource().exists()); IPackageFragmentRoot newRoot = getSourceFolder(otherJavaProject, oldRoot.getElementName()); assertTrue("new folder does not exist after", newRoot.exists()); ParticipantTesting.testMove(handles, new MoveArguments[] { new MoveArguments(otherJavaProject, ref.getUpdateReferences()), new MoveArguments(otherJavaProject.getResource(), ref.getUpdateReferences()) }); } finally { JavaProjectHelper.delete(otherJavaProject); } }
From source file:org.eclipse.che.jdt.search.JavaElementToDtoConverter.java
License:Open Source License
private List<PackageFragmentRoot> getPackageFragmentRoots(Object parent, String projectPath) throws JavaModelException { List<PackageFragmentRoot> result = new ArrayList<>(); Set<Object> objects = childrens.get(parent); if (objects == null) { return result; }/* ww w .j a v a 2 s . c o m*/ for (Object object : objects) { if (object instanceof IPackageFragmentRoot) { PackageFragmentRoot root = DtoFactory.newDto(PackageFragmentRoot.class); IPackageFragmentRoot fragmentRoot = (IPackageFragmentRoot) object; root.setProjectPath(projectPath); root.setKind(fragmentRoot.getKind()); root.setPath(fragmentRoot.getPath().toOSString()); root.setElementName(fragmentRoot.getElementName()); root.setHandleIdentifier(fragmentRoot.getHandleIdentifier()); root.setPackageFragments(getPackageFragments(fragmentRoot, projectPath)); result.add(root); } } return result; }
From source file:org.eclipse.che.plugin.java.server.JavaNavigation.java
License:Open Source License
public List<Jar> getProjectDependecyJars(IJavaProject project) throws JavaModelException { List<Jar> jars = new ArrayList<>(); for (IPackageFragmentRoot fragmentRoot : project.getAllPackageFragmentRoots()) { if (fragmentRoot instanceof JarPackageFragmentRoot) { Jar jar = DtoFactory.getInstance().createDto(Jar.class); jar.setId(fragmentRoot.hashCode()); jar.setName(fragmentRoot.getElementName()); jars.add(jar);//from ww w .ja v a 2 s . c om } } return jars; }
From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java
License:Open Source License
private void appendInternalArchiveLabel(IPackageFragmentRoot root, long flags) { IResource resource = root.getResource(); boolean rootQualified = getFlag(flags, JavaElementLabels.ROOT_QUALIFIED); if (rootQualified) { fBuffer.append(root.getPath().makeRelative().toString()); } else {// ww w. j a v a2s .c o m fBuffer.append(root.getElementName()); int offset = fBuffer.length(); boolean referencedPostQualified = getFlag(flags, JavaElementLabels.REFERENCED_ROOT_POST_QUALIFIED); if (referencedPostQualified && isReferenced(root)) { fBuffer.append(JavaElementLabels.CONCAT_STRING); fBuffer.append(resource.getParent().getFullPath().makeRelative().toString()); } else if (getFlag(flags, JavaElementLabels.ROOT_POST_QUALIFIED)) { fBuffer.append(JavaElementLabels.CONCAT_STRING); fBuffer.append(root.getParent().getPath().makeRelative().toString()); } if (referencedPostQualified) { try { IClasspathEntry referencingEntry = JavaModelUtil.getClasspathEntry(root).getReferencingEntry(); if (referencingEntry != null) { fBuffer.append(messages.JavaElementLabels_onClassPathOf(Name.CLASS_PATH.toString(), referencingEntry.getPath().lastSegment())); } } catch (JavaModelException e) { // ignore } } if (getFlag(flags, JavaElementLabels.COLORIZE)) { fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE); } } }