What does a qualified name mean for a module?

David M. Lloyd david.lloyd at redhat.com
Tue Jun 6 17:35:18 UTC 2017


On 06/06/2017 12:14 PM, Stephan Herrmann wrote:
> On 06.06.2017 18:59, Alex Buckley wrote:
>> A module name has the same structure as a package name, so 
>> ModuleElement has the same shape as PackageElement: each inherits 
>> getSimpleName() from Element, and getQualifiedName() from 
>> getQualifiedName() from QualifiedNameable.
> 
> Syntactically you're right, but ...
> 
> Normally, a qualified name denotes two things: a parent element and a 
> child.
> The package name "java.lang" has a qualifier "java" which denotes a 
> top-level package
> and "lang" can be used relative to that package to denote a member 
> package etc.
> 
> For a module - say "java.base" - the qualifier "java" denotes nothing.
> And hence, the simple name "base" cannot be resolved in any context.
> 
> So the question is: should ModuleElement.getSimpleName() answer the
> totally useless last segment of the name, or should it answer the same
> as getQualifiedName()?

The answer to that question should apply to PackageElement too, for 
identical reasons.  However, PackageElement is established API already...

-- 
- DML


More information about the jigsaw-dev mailing list