List of usage examples for org.eclipse.jdt.core IPackageFragmentRoot getElementName
String getElementName();
From source file:org.eclipse.jdt.internal.core.SourceMapper.java
License:Open Source License
private synchronized void computeAllRootPaths(IType type) { if (this.areRootPathsComputed) { return;/*from w w w .j a v a 2s . 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()) { JavaModelManager manager = 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 (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 = JavaConventions.validatePackageName(firstLevelPackageName, sourceLevel, complianceLevel); if (status.isOK() || status.getSeverity() == IStatus.WARNING) { firstLevelPackageNames.add(firstLevelPackageName); } } } else { containsADefaultPackage = true; } } else if (!containsJavaSource && org.eclipse.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 (Util.isClassFileName(resourceName)) { containsADefaultPackage = true; } else if (!containsJavaSource && org.eclipse.jdt.internal.core.util.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() && org.eclipse.jdt.internal.core.util.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.jst.jsf.facesconfig.ui.dialog.MessageBundleViewerSorter.java
License:Open Source License
public int category(Object element) { if (element instanceof IPackageFragmentRoot && !((IPackageFragmentRoot) element).isArchive()) { IPackageFragmentRoot root = (IPackageFragmentRoot) element; if (IFileFolderConstants.FOLDER_SOURCE.equals(root.getElementName())) { return 0; }//from ww w. ja v a 2 s.c om return 1; } return 2; }
From source file:org.eclipse.modisco.java.discoverer.DiscoverJavaModelFromLibrary.java
License:Open Source License
@Override protected void basicDiscoverElement(final IPackageFragmentRoot packageFragmentRoot, final IProgressMonitor monitor) throws DiscoveryException { final IJavaProject javaProject = packageFragmentRoot.getJavaProject(); if (javaProject == null) { return;//from w ww . j a v a2s. c o m } IProject project = javaProject.getProject(); setDefaultTargetURI( URI.createPlatformResourceURI(project.getFullPath().append(packageFragmentRoot.getElementName()) .toString().concat(JavaDiscoveryConstants.JAVA_MODEL_FILE_SUFFIX), true)); Model model = getEFactory().createModel(); createTargetModel().getContents().add(model); IModelReader reader = getLibraryReader(); reader.readModel(packageFragmentRoot, model, monitor); if (monitor.isCanceled()) { return; } reader.terminate(monitor); }
From source file:org.eclipse.modisco.java.discoverer.ElementsToAnalyze.java
License:Open Source License
@Override public String toString() { StringBuilder builder = new StringBuilder(); boolean first = true; for (Object object : getElementsToDiscover()) { if (!first) { builder.append(", "); //$NON-NLS-1$ }/* www .j av a 2 s . c o m*/ first = false; if (object instanceof IJavaProject) { IJavaProject javaProject = (IJavaProject) object; builder.append(javaProject.getElementName()); } else if (object instanceof IPackageFragmentRoot) { IPackageFragmentRoot packageFragmentRoot = (IPackageFragmentRoot) object; builder.append(packageFragmentRoot.getElementName()); } else { builder.append(object.toString()); } } return builder.toString(); }
From source file:org.eclipse.modisco.java.discoverer.internal.io.library.LibraryReader.java
License:Open Source License
public void readModel(final Object source, final Model resultModel1, final BindingManager globalBindings1, final IProgressMonitor monitor) { if (source == null) { return;//from www.j ava 2s. c o m } this.resultModel = resultModel1; this.globalBindings = globalBindings1; ClassFileParserUtils.initializePrimitiveTypes(this.factory, resultModel1, this.globalBindings); try { if (source instanceof IPackageFragmentRoot) { IPackageFragmentRoot library = (IPackageFragmentRoot) source; if (resultModel1.getName() == null || resultModel1.getName().length() == 0) { resultModel1.setName(library.getElementName()); } this.typeFinder = new TypeFinder(library.getJavaProject()); IJavaElement[] children = library.getChildren(); for (IJavaElement element : children) { IPackageFragment packageFolder = (IPackageFragment) element; if (packageFolder.getClassFiles().length > 0) { // report some feedback monitor.subTask(Messages.LibraryReader_DiscoveringTask + packageFolder.getElementName()); // parse package parsePackage(library, resultModel1, packageFolder, monitor); if (monitor.isCanceled()) { return; } } } } else if (source instanceof IClassFile) { IClassFile cf = (IClassFile) source; this.typeFinder = new TypeFinder(cf.getJavaProject()); parseClassFile(cf); } else { throw new IllegalArgumentException( "Library reader can not handle source object : " + source.toString()); //$NON-NLS-1$ } } catch (Exception e) { MoDiscoLogger.logError(e, JavaActivator.getDefault()); } }
From source file:org.eclipse.modisco.java.discoverer.internal.io.library.LibraryReader.java
License:Open Source License
/** * Returns the {@link Archive} object which corresponds to the * {@link IPackageFragmentRoot#isArchive() archive} in which this class file * is contained. If a corresponding archive is present in the {@code model}, * it is returned, or a new one is created and added to the {@code model}. * /* w w w. jav a2 s . co m*/ * @param classFile * the class file * @param factory * the EMF factory * @param model * the {@code Model} * @return the {@code Archive object}, or {@code null} if {@code classFile} * is not contained in an archive */ public static Archive getArchive(final IClassFile classFile, final JavaFactory factory, final Model model) { Archive archive = null; IPackageFragmentRoot root = (IPackageFragmentRoot) classFile .getAncestor(IJavaElement.PACKAGE_FRAGMENT_ROOT); if (root != null && root.isArchive()) { String libraryPath = getPath(root); // class file is in a library for (Archive itElement : model.getArchives()) { if (itElement.getOriginalFilePath().equals(libraryPath)) { return itElement; } } // if non present in model, create a new one archive = factory.createArchive(); archive.setName(root.getElementName()); archive.setOriginalFilePath(libraryPath); ManifestReader.completeArchiveWithManifest(root, archive, factory); model.getArchives().add(archive); } return archive; }
From source file:org.eclipse.pde.api.tools.internal.WorkspaceDeltaProcessor.java
License:Open Source License
/** * Processes the java element deltas of interest * //from w w w. j ava2 s .c o m * @param deltas */ void processJavaElementDeltas(IJavaElementDelta[] deltas, IJavaProject project) { for (int i = 0; i < deltas.length; i++) { IJavaElementDelta delta = deltas[i]; switch (delta.getElement().getElementType()) { case IJavaElement.JAVA_PROJECT: { IJavaProject proj = (IJavaProject) delta.getElement(); int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing CHANGED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_OPENED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing OPEN project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); } else if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0 || (flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CLASSPATH CHANGE project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } bmanager.disposeWorkspaceBaseline(); dmanager.projectClasspathChanged(proj); try { BuildState.setLastBuiltState(proj.getProject(), null); } catch (CoreException e) { } dmanager.flushElementCache(delta.getElement()); } else if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing CHILDREN delta of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), proj); } else if ((flags & IJavaElementDelta.F_CONTENT) != 0) { if (proj != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> processing child CONTENT of project: [" + proj.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } IResourceDelta[] resourcedeltas = delta.getResourceDeltas(); if (resourcedeltas != null) { IResourceDelta rdelta = null; for (int j = 0; j < resourcedeltas.length; j++) { rdelta = resourcedeltas[j].findMember(new Path(Util.MANIFEST_NAME)); if (rdelta != null && rdelta.getKind() == IResourceDelta.CHANGED && (rdelta.getFlags() & IResourceDelta.CONTENT) > 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing manifest delta"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); break; } } } } else { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> ignoring child CONTENT project context is null"); //$NON-NLS-1$ } } } break; } case IJavaElementDelta.ADDED: { if (!Util.isApiProject(proj)) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "--> skipped processing ADDED delta for project: " + proj.getElementName()); //$NON-NLS-1$ } continue; } if ((flags & IJavaElementDelta.F_MOVED_FROM) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("--> processing PROJECT RENAME from: [" //$NON-NLS-1$ + delta.getMovedFromElement().getJavaProject().getElementName() + "] to: [" //$NON-NLS-1$ + proj.getElementName() + "]"); //$NON-NLS-1$ } bmanager.disposeWorkspaceBaseline(); } break; } default: break; } break; } case IJavaElement.PACKAGE_FRAGMENT_ROOT: { IPackageFragmentRoot root = (IPackageFragmentRoot) delta.getElement(); int flags = delta.getFlags(); if ((flags & (IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED | IJavaElementDelta.F_ADDED_TO_CLASSPATH | IJavaElementDelta.F_REMOVED_FROM_CLASSPATH)) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CLASSPATH CHANGED for package fragment root: [" //$NON-NLS-1$ + root.getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectClasspathChanged(project); } if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println( "processed CHILDREN for package fragment root: [" + root.getElementName() + "]"); //$NON-NLS-1$ //$NON-NLS-2$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.PACKAGE_FRAGMENT: { IPackageFragment fragment = (IPackageFragment) delta.getElement(); if (delta.getKind() == IJavaElementDelta.REMOVED) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed REMOVED delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } ((ApiBaseline) bmanager.getWorkspaceBaseline()).clearPackage(fragment.getElementName()); } int flags = delta.getFlags(); if ((flags & IJavaElementDelta.F_CHILDREN) != 0) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out.println("processed CHILDREN delta for package fragment: [" //$NON-NLS-1$ + fragment.getElementName() + "]"); //$NON-NLS-1$ } processJavaElementDeltas(delta.getAffectedChildren(), project); } break; } case IJavaElement.COMPILATION_UNIT: { int flags = delta.getFlags(); switch (delta.getKind()) { case IJavaElementDelta.CHANGED: { if ((flags & (IJavaElementDelta.F_CONTENT | IJavaElementDelta.F_FINE_GRAINED | IJavaElementDelta.F_PRIMARY_RESOURCE)) != 0) { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { System.out .println("processed CONTENT / FINE_GRAINED / PRIMARY_RESOURCE delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } } break; } case IJavaElementDelta.ADDED: case IJavaElementDelta.REMOVED: { if (project != null) { if (ApiPlugin.DEBUG_WORKSPACE_DELTA_PROCESSOR) { if (delta.getKind() == IJavaElementDelta.ADDED) { System.out.println( "processed ADDED delta for: [" + delta.getElement().getElementName() + "]"); //$NON-NLS-1$//$NON-NLS-2$ } else { System.out.println("processed REMOVED delta for: [" //$NON-NLS-1$ + delta.getElement().getElementName() + "]"); //$NON-NLS-1$ } } dmanager.projectChanged(project); dmanager.flushElementCache(delta.getElement()); continue; } break; } default: break; } break; } default: break; } } }
From source file:org.eclipse.recommenders.codesearch.rcp.index.ui.ProjectIndexerRunnable.java
License:Open Source License
private void analyzeRoot(final IPackageFragmentRoot root) throws Exception { this.root = root; monitor.subTask("Analyzing " + root.getElementName()); rootLocation = getFile(root);//from www . j av a 2 s .c o m if (monitor.isCanceled()) { return; } if (rootLocation == null) { return; } if (hasNotChanged(rootLocation)) { return; } if (root.isArchive()) { indexer.delete(rootLocation); if (!findSourceMapper()) { return; } } analyzePackageFragments(); monitor.subTask("Checkpointing..."); indexer.commit(); monitor.worked(1); root.close(); }
From source file:org.eclipse.recommenders.internal.apidocs.rcp.StaticHooksProvider.java
License:Open Source License
@JavaSelectionSubscriber public void onPackageRootSelection(final IPackageFragmentRoot root, final JavaElementSelectionEvent event, final Composite parent) throws ExecutionException { final TreeMultimap<IType, IMethod> index = TreeMultimap.create(new TypeNameComparator(), new MethodNameComparator()); try {/*from w ww .ja va 2 s .co m*/ for (final IJavaElement e : root.getChildren()) { if (e.getElementType() == IJavaElement.PACKAGE_FRAGMENT) { final IPackageFragment pkg = (IPackageFragment) e; findStaticHooks(pkg, index); pkg.close(); } } } catch (final Exception x) { log(ERROR_FAILED_TO_DETERMINE_STATIC_MEMBERS, x, root.getElementName()); } runSyncInUiThread(new HooksRendererRunnable(index, parent)); }
From source file:org.eclipse.recommenders.internal.types.rcp.ProjectTypesIndex.java
License:Open Source License
private void rebuildRoot(IPackageFragmentRoot root, SubMonitor monitor) { ImmutableList<IType> types = findTypes(root); SubMonitor progress = SubMonitor.convert(monitor, types.size()); progress.subTask(root.getElementName()); for (IType type : types) { if (progress.isCanceled()) { setRebuildAfterNextAccess(true); throw new OperationCanceledException(); }/* w ww. j a v a 2 s .co m*/ indexType(type, progress.newChild(1)); } File location = JavaElementsFinder.findLocation(root).orNull(); if (location != null) { registerArchivePackageFragmentRoot(location); } commit(); }