Class ClasspathJar
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathLocation
org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathJar
- All Implemented Interfaces:
FileSystem.Classpath
,IModulePathEntry
,SuffixConstants
- Direct Known Subclasses:
ClasspathJmod
,ClasspathMultiReleaseJar
,ClasspathSourceJar
-
Field Summary
Modifier and TypeFieldDescriptionprotected ZipFile
protected boolean
protected File
protected ZipFile
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathLocation
accessRuleSet, BINARY, destinationPath, SOURCE
Fields 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
ConstructorDescriptionClasspathJar
(File file, boolean closeZipFileAtEnd, AccessRuleSet accessRuleSet, String destinationPath) -
Method Summary
Modifier and TypeMethodDescriptionprotected void
addToPackageCache
(String fileName, boolean endsWithSep) void
close()
protected void
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) int
getMode()
Get the module that this entry contributes.char[][]
getModulesDeclaringPackage
(String qualifiedPackageName, String moduleName) Answer the relevant modules that declare the given package.getPath()
Return the path for file based classpath entries.boolean
hasAnnotationFileFor
(String qualifiedTypeName) Can the current location provide an external annotation file for the given type?boolean
hasCompilationUnit
(String qualifiedPackageName, String moduleName) Answer whether the given package has any compilation unit (.java or .class) in the given module.void
Initialize the entrychar[][]
Lists all packages in this modulepath entry.char[]
Return a normalized path for file based classpath entries.void
reset()
This method resets the environment.toString()
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathLocation
acceptModule, allModules, equals, fetchAccessRestriction, getDestinationPath, getModuleNames, getModuleNames, hashCode, isAutomaticModule, isPackage, selectModules, singletonModuleNameIf
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
Methods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.batch.FileSystem.Classpath
forbidsExportFrom, hasCUDeclaringPackage, hasModule
Methods inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.env.IModulePathEntry
getModule, servesModule
-
Field Details
-
file
-
zipFile
-
annotationZipFile
-
closeZipFileAtEnd
protected boolean closeZipFileAtEnd -
packageCache
-
annotationPaths
-
-
Constructor Details
-
ClasspathJar
public ClasspathJar(File file, boolean closeZipFileAtEnd, AccessRuleSet accessRuleSet, String destinationPath)
-
-
Method Details
-
fetchLinkedJars
public List<FileSystem.Classpath> fetchLinkedJars(FileSystem.ClasspathSectionProblemReporter problemReporter) Description copied from interface:FileSystem.Classpath
Return 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.- 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
-
findClass
public NameEnvironmentAnswer findClass(char[] typeName, String qualifiedPackageName, String moduleName, String qualifiedBinaryFileName) -
findClass
public NameEnvironmentAnswer findClass(char[] typeName, String qualifiedPackageName, String moduleName, String qualifiedBinaryFileName, boolean asBinaryOnly) -
hasAnnotationFileFor
Description copied from interface:FileSystem.Classpath
Can the current location provide an external annotation file for the given type?- Parameters:
qualifiedTypeName
- type name in qualified /-separated notation.
-
findTypeNames
-
initialize
Description copied from interface:FileSystem.Classpath
Initialize the entry- Throws:
IOException
-
addToPackageCache
-
getModulesDeclaringPackage
Description copied from interface:IModulePathEntry
Answer 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. -
hasCompilationUnit
Description copied from interface:IModulePathEntry
Answer 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.- 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.
-
listPackages
public char[][] listPackages()Description copied from interface:IModulePathEntry
Lists all packages in this modulepath entry.- Returns:
- array of flat, dot-separated package names
-
reset
public void reset()Description copied from interface:FileSystem.Classpath
This method resets the environment. The resulting state is equivalent to a new name environment without creating a new object.- Specified by:
reset
in interfaceFileSystem.Classpath
- Overrides:
reset
in classClasspathLocation
-
toString
-
normalizedPath
public char[] normalizedPath()Description copied from interface:FileSystem.Classpath
Return 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.- Returns:
- a normalized path for file based classpath entries
-
getPath
Description copied from interface:FileSystem.Classpath
Return 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:
getPath
in interfaceFileSystem.Classpath
- Overrides:
getPath
in classClasspathLocation
- Returns:
- the path for file based classpath entries
-
getMode
public int getMode()- Overrides:
getMode
in classClasspathLocation
-
getModule
Description copied from interface:IModulePathEntry
Get the module that this entry contributes. May be null, for instance when this entry does not represent a single module- Returns:
- The module that this entry contributes or null
-
ensureOpen
- Throws:
IOException
-
close
public void close()
-