Class ClasspathJrt
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathLocation
org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathJrt
- All Implemented Interfaces:
FileSystem.Classpath,IModulePathEntry,IMultiModuleEntry,SuffixConstants
- Direct Known Subclasses:
ClasspathJep247
-
Field Summary
FieldsFields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathLocation
accessRuleSet, BINARY, destinationPath, SOURCEFields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.util.SuffixConstants
EXTENSION_aj, EXTENSION_AJ, EXTENSION_class, EXTENSION_CLASS, EXTENSION_java, EXTENSION_JAVA, EXTENSION_jmod, EXTENSION_JMOD, SUFFIX_aj, SUFFIX_AJ, SUFFIX_class, SUFFIX_CLASS, SUFFIX_java, SUFFIX_JAVA, SUFFIX_STRING_aj, SUFFIX_STRING_AJ, SUFFIX_STRING_class, SUFFIX_STRING_CLASS, SUFFIX_STRING_java, SUFFIX_STRING_JAVA -
Constructor Summary
ConstructorsConstructorDescriptionClasspathJrt(File file, boolean closeZipFileAtEnd, AccessRuleSet accessRuleSet, String destinationPath) -
Method Summary
Modifier and TypeMethodDescriptionprotected voidaddTypeName(ArrayList answers, String fileName, int last, char[] packageName) allModules(Iterable<T> allSystemModules, Function<T, String> getModuleName, Function<T, IModule> getModule) static voidclearCache(String path, String releaseVersion) fetchLinkedJars(FileSystem.ClasspathSectionProblemReporter problemReporter) Return a list of the jar file names defined in the Class-Path section of the jar file manifest if any, null else.findClass(char[] typeName, String qualifiedPackageName, String moduleName, String qualifiedBinaryFileName) findClass(char[] typeName, String qualifiedPackageName, String moduleName, String qualifiedBinaryFileName, boolean asBinaryOnly) char[][][]findTypeNames(String qualifiedPackageName, String moduleName) intgetMode()getModule(char[] moduleName) Get the module named name from this entry.getModuleNames(Collection<String> limitModule, Function<String, IModule> getModule) char[][]getModulesDeclaringPackage(String qualifiedPackageName, String moduleName) Answer the relevant modules that declare the given package.getPath()Return the path for file based classpath entries.booleanhasAnnotationFileFor(String qualifiedTypeName) Can the current location provide an external annotation file for the given type?booleanhasCompilationUnit(String qualifiedPackageName, String moduleName) Answer whether the given package has any compilation unit (.java or .class) in the given module.booleanvoidInitialize the entryvoidprotected IBinaryTypemaybeDecorateForExternalAnnotations(String qualifiedBinaryFileName, IBinaryType reader) char[]Return a normalized path for file based classpath entries.voidreset()This method resets the environment.booleanservesModule(char[] moduleName) Indicates whether this entry knows the module named name and can answer queries regarding the moduletoString()Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathLocation
acceptModule, equals, fetchAccessRestriction, getDestinationPath, getModuleNames, hashCode, isAutomaticModule, isPackage, selectModules, singletonModuleNameIfMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.batch.FileSystem.Classpath
forbidsExportFrom, hasCUDeclaringPackageMethods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.env.IModulePathEntry
getModule, isAutomaticModule, listPackagesMethods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.env.IMultiModuleEntry
getModuleNames
-
Field Details
-
file
-
annotationZipFile
-
closeZipFileAtEnd
protected boolean closeZipFileAtEnd -
ModulesCache
-
moduleNamesCache
-
annotationPaths
-
-
Constructor Details
-
ClasspathJrt
public ClasspathJrt(File file, boolean closeZipFileAtEnd, AccessRuleSet accessRuleSet, String destinationPath)
-
-
Method Details
-
fetchLinkedJars
Description copied from interface:FileSystem.ClasspathReturn a list of the jar file names defined in the Class-Path section of the jar file manifest if any, null else. Only ClasspathJar (and extending classes) instances may return a non-null result.- Specified by:
fetchLinkedJarsin interfaceFileSystem.Classpath- Parameters:
problemReporter- problem reporter with which potential misconfiguration issues are raised- Returns:
- a list of the jar file names defined in the Class-Path section of the jar file manifest if any
-
getModulesDeclaringPackage
Description copied from interface:IModulePathEntryAnswer the relevant modules that declare the given package. If moduleName is ModuleBinding.ANY then all packages are relevant, if moduleName is ModuleBinding.UNNAMED, then only packages in the unnamed module are relevant, otherwise consider only packages in the module identified by moduleName.- Specified by:
getModulesDeclaringPackagein interfaceIModulePathEntry
-
hasCompilationUnit
Description copied from interface:IModulePathEntryAnswer whether the given package has any compilation unit (.java or .class) in the given module. For entries representing a single module, the module name should be checked before invoking this method.- Specified by:
hasCompilationUnitin interfaceIModulePathEntry- Parameters:
qualifiedPackageName- '/'-separated package namemoduleName- if non-null only CUs attached to the given module should be considered- Returns:
- true iff a .java or .class file could be found in the given module / package.
-
findClass
public NameEnvironmentAnswer findClass(char[] typeName, String qualifiedPackageName, String moduleName, String qualifiedBinaryFileName) - Specified by:
findClassin interfaceFileSystem.Classpath
-
findClass
public NameEnvironmentAnswer findClass(char[] typeName, String qualifiedPackageName, String moduleName, String qualifiedBinaryFileName, boolean asBinaryOnly) - Specified by:
findClassin interfaceFileSystem.Classpath
-
maybeDecorateForExternalAnnotations
protected IBinaryType maybeDecorateForExternalAnnotations(String qualifiedBinaryFileName, IBinaryType reader) -
hasAnnotationFileFor
Description copied from interface:FileSystem.ClasspathCan the current location provide an external annotation file for the given type?- Specified by:
hasAnnotationFileForin interfaceFileSystem.Classpath- Parameters:
qualifiedTypeName- type name in qualified /-separated notation.
-
findTypeNames
- Specified by:
findTypeNamesin interfaceFileSystem.Classpath
-
addTypeName
-
initialize
Description copied from interface:FileSystem.ClasspathInitialize the entry- Specified by:
initializein interfaceFileSystem.Classpath- Throws:
IOException
-
loadModules
public void loadModules() -
getModuleNames
public Collection<String> getModuleNames(Collection<String> limitModule, Function<String, IModule> getModule) - Specified by:
getModuleNamesin interfaceFileSystem.Classpath- Overrides:
getModuleNamesin classClasspathLocation
-
allModules
protected <T> List<String> allModules(Iterable<T> allSystemModules, Function<T, String> getModuleName, Function<T, IModule> getModule) - Overrides:
allModulesin classClasspathLocation
-
reset
public void reset()Description copied from interface:FileSystem.ClasspathThis method resets the environment. The resulting state is equivalent to a new name environment without creating a new object.- Specified by:
resetin interfaceFileSystem.Classpath- Overrides:
resetin classClasspathLocation
-
toString
-
normalizedPath
public char[] normalizedPath()Description copied from interface:FileSystem.ClasspathReturn a normalized path for file based classpath entries. This is an absolute path in which file separators are transformed to the platform-agnostic '/', ending with a '/' for directories. This is an absolute path in which file separators are transformed to the platform-agnostic '/', deprived from the '.jar' (resp. '.zip') extension for jar (resp. zip) files.- Specified by:
normalizedPathin interfaceFileSystem.Classpath- Returns:
- a normalized path for file based classpath entries
-
getPath
Description copied from interface:FileSystem.ClasspathReturn the path for file based classpath entries. This is an absolute path ending with a file separator for directories, an absolute path including the '.jar' (resp. '.zip') extension for jar (resp. zip) files.- Specified by:
getPathin interfaceFileSystem.Classpath- Overrides:
getPathin classClasspathLocation- Returns:
- the path for file based classpath entries
-
getMode
public int getMode()- Overrides:
getModein classClasspathLocation
-
hasModule
public boolean hasModule()- Specified by:
hasModulein interfaceFileSystem.Classpath
-
getModule
Description copied from interface:IModulePathEntryGet the module named name from this entry. May be null- Specified by:
getModulein interfaceIModulePathEntry- Specified by:
getModulein interfaceIMultiModuleEntry- Parameters:
moduleName- - The name of the module to look up- Returns:
- The module named name or null
-
servesModule
public boolean servesModule(char[] moduleName) Description copied from interface:IModulePathEntryIndicates whether this entry knows the module named name and can answer queries regarding the module- Specified by:
servesModulein interfaceIModulePathEntry- Parameters:
moduleName- The name of the module- Returns:
- True if this entry knows the module, false otherwise
-
clearCache
-