On 02/07/2019 09:47, Christian Stein wrote:
Hi,
at the moment, class `java.lang.module.ModuleDescriptor` only
provides an `isAutomatic()` getter -- which doesn't allow to
determine from where the module name actually came from.
Program `PresentModule.java` [1] creates a `JarFile` instance
to determine the source of an automatic module.
As the module name is resolved by the runtime from a
specific source, it could be stored as a constant in the
`ModuleDescriptor` instance at resolution time.
I propose to extend the `ModuleDescriptor` class with a
public enum NameSource {
FILENAME, MANIFEST, DESCRIPTOR
}
and an accessor:
public NameSource nameSource { return ... }
ModuleDescriptor just describes a named module and doesn't care how the
module name came about when creating an automatic module. Anything
working with module locations should use a ModuleReference as it defines
the "location" method to get a URI to the module content (if possible).
So probably better if tools like this used a ModuleReference and special
cased the JAR caseĀ when they want to know if the module name was
derived from the JAR file name or came from the value of the
Automatic-Module-Name attribute.
-Alan