# modules and module hierarchies in the metamodel
module mmodule
-import location
import mpackage
private import more_collections
super MConcern
# The model considered
- redef var model: Model
+ redef var model
# The group of module in the package if any
var mgroup: nullable MGroup
# The path of the module source, if any
- var filepath: nullable String = null is writable
+ #
+ # safe alias to `location.file.filepath`
+ fun filepath: nullable String do
+ var res = self.location.file
+ if res == null then return null
+ return res.filename
+ end
# The package of the module if any
# Safe alias for `mgroup.mpackage`
end
# The short name of the module
- redef var name: String
+ redef var name
- # The origin of the definition
- var location: Location is writable
+ redef var location is writable
# Alias for `name`
redef fun to_s do return self.name
# Return the name of the global C identifier associated to `self`.
# This name is used to prefix files and other C identifiers associated with `self`.
- redef var c_name: String is lazy do
+ redef var c_name is lazy do
var g = mgroup
var res
if g != null and g.mpackage.name != name then