/** * Returns a descriptor for the given class within the given package fragment, or null if the fragment doesn't have * a location on the filesystem. */ private static BinaryModuleDescriptor createDescriptor(PackageFragmentRoot root, ModularClassFile classFile) { IPath location = JavaIndex.getLocationForElement(root); if (location == null) { return null; } String entryName = TypeConstants.MODULE_INFO_CLASS_NAME_STRING; IPath workspacePath = root.getPath(); String indexPath; char[] moduleName = null; if (root instanceof JarPackageFragmentRoot) { entryName = ((JarPackageFragmentRoot) root).getClassFilePath(entryName); indexPath = root.getHandleIdentifier() + IDependent.JAR_FILE_ENTRY_SEPARATOR + entryName; // see additional comments in BinaryTypeFactor.createDescriptor() if (root instanceof JrtPackageFragmentRoot) { moduleName = root.getElementName().toCharArray(); } } else { location = location.append(entryName); indexPath = workspacePath.append(entryName).toString(); workspacePath = classFile.resource().getFullPath(); } return new BinaryModuleDescriptor(location.toString().toCharArray(), moduleName, // TODO: module name only known for JRT workspacePath.toString().toCharArray(), indexPath.toCharArray()); }
PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR ADDED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR CHANGED, affecting root: "+root.getElementName()); //$NON-NLS-1$ PackageFragmentRoot root = (PackageFragmentRoot) javaProject.getPackageFragmentRoot(entryPath.toString()); if (VERBOSE){ System.out.println("- External JAR REMOVED, affecting root: "+root.getElementName()); //$NON-NLS-1$
/** * @see JavaElement#getHandleMemento(StringBuffer) */ @Override protected void getHandleMemento(StringBuffer buff) { IPath path; IResource underlyingResource = getResource(); if (underlyingResource != null) { // internal jar or regular root if (resource().getProject().equals(getJavaProject().getProject())) { path = underlyingResource.getProjectRelativePath(); } else { path = underlyingResource.getFullPath(); } } else { // external jar path = getPath(); } ((JavaElement)getParent()).getHandleMemento(buff); buff.append(getHandleMementoDelimiter()); escapeMementoName(buff, path.toString()); if (org.eclipse.jdt.internal.compiler.util.Util.isJrt(path.toOSString())) { buff.append(JavaElement.JEM_MODULE); escapeMementoName(buff, getElementName()); } } /**
/** * @see JavaElement#getHandleMemento(StringBuffer) */ protected void getHandleMemento(StringBuffer buff) { IPath path; IResource underlyingResource = getResource(); if (underlyingResource != null) { // internal jar or regular root if (resource().getProject().equals(getJavaProject().getProject())) { path = underlyingResource.getProjectRelativePath(); } else { path = underlyingResource.getFullPath(); } } else { // external jar path = getPath(); } ((JavaElement)getParent()).getHandleMemento(buff); buff.append(getHandleMementoDelimiter()); escapeMementoName(buff, path.toString()); if (org.eclipse.jdt.internal.compiler.util.Util.isJrt(path.toOSString())) { buff.append(getHandleMementoDelimiter()); escapeMementoName(buff, getElementName()); } } /**
IModuleDescription getAutomaticModuleDescription(IClasspathEntry classpathEntry) { String elementName = getElementName(); Manifest manifest = null; switch (classpathEntry.getEntryKind()) { case IClasspathEntry.CPE_SOURCE: manifest = ((JavaProject) getJavaProject()).getManifest(); elementName = getJavaProject().getElementName(); break; case IClasspathEntry.CPE_LIBRARY: manifest = getManifest(); break; case IClasspathEntry.CPE_PROJECT: JavaProject javaProject = (JavaProject) getJavaModel().getJavaProject(classpathEntry.getPath().lastSegment()); manifest = javaProject.getManifest(); elementName = javaProject.getElementName(); break; } char[] moduleName = AutomaticModuleNaming.determineAutomaticModuleName(elementName, isArchive(), manifest); return new AbstractModule.AutoModule(this, String.valueOf(moduleName)); }
IModuleDescription getAutomaticModuleDescription(IClasspathEntry classpathEntry) { String elementName = getElementName(); Manifest manifest = null; switch (classpathEntry.getEntryKind()) { case IClasspathEntry.CPE_SOURCE: manifest = ((JavaProject) getJavaProject()).getManifest(); elementName = getJavaProject().getElementName(); break; case IClasspathEntry.CPE_LIBRARY: manifest = getManifest(); break; case IClasspathEntry.CPE_PROJECT: JavaProject javaProject = (JavaProject) getJavaModel().getJavaProject(classpathEntry.getPath().lastSegment()); manifest = javaProject.getManifest(); elementName = javaProject.getElementName(); break; } boolean nameFromManifest = true; char[] moduleName = AutomaticModuleNaming.determineAutomaticModuleNameFromManifest(manifest); if (moduleName == null) { nameFromManifest = false; moduleName = AutomaticModuleNaming.determineAutomaticModuleNameFromFileName(elementName, true, isArchive()); } return new AbstractModule.AutoModule(this, String.valueOf(moduleName), nameFromManifest); }