super
end
- redef fun location=(location: nullable Location) do
+ redef fun location=(location) do
super
for m in inner_namespaces do m.location = location
end
- redef fun name=(name: String) do
+ redef fun name=(name) do
# Example: `MyClass.java`
super
var match = name.search_last(".")
for m in inner_namespaces do m.update_name
end
- redef fun declare_namespace(id: String, full_name: String) do
+ redef fun declare_namespace(id, full_name) do
var m: Module
assert not full_name.is_empty or id.is_empty else
sys.stderr.write "Inner mamespace declarations without name are not yet supported (except for the root namespace).\n"
end
m = new Module(graph, self, new NamespaceRef(id, full_name))
- m.location = self["location"].as(nullable Location)
+ m.location = location
inner_namespaces.add m
end
# declares it.
fun update_name do name = file_compound.basename
- redef fun put_in_graph do
- super
- end
-
redef fun put_edges do
var ns_compound = namespace.seek_in(graph)
var self_class = ns_compound.self_class
+ var class_count = 0
+ var last_class: nullable ClassCompound = null
graph.add_edge(ns_compound, "DECLARES", self)
for c in file_compound.inner_classes do
if graph.class_to_ns[c] != ns_compound then continue
var class_compound = graph.by_id[c].as(ClassCompound)
+ last_class = class_compound
+ class_count += 1
graph.add_edge(self, "INTRODUCES", class_compound)
graph.add_edge(self, "DEFINES", class_compound.class_def)
end
graph.add_edge(self, "INTRODUCES", self_class)
graph.add_edge(self, "DEFINES", self_class.class_def)
end
+
+ if doc.is_empty and class_count == 1 then
+ doc = last_class.as(not null).doc
+ end
+ if doc.is_empty then doc = file_compound.doc
+ if doc.is_empty then doc = ns_compound.doc
+ if not doc.is_empty then set_mdoc
end
end