# in Proceedings of the 16th IEEE International Conference on Program Comprehension (OCPC'08)
module mendel_metrics
-import model
import metrics_base
import mclasses_metrics
-import phase
-import frontend
+import modelize
redef class ToolContext
- var mendel_metrics_phase = new MendelMetricsPhase(self, null)
+ var mendel_metrics_phase: Phase = new MendelMetricsPhase(self, null)
end
private class MendelMetricsPhase
super Phase
- redef fun process_mainmodule(mainmodule)
+ redef fun process_mainmodule(mainmodule, given_mmodules)
do
if not toolcontext.opt_mendel.value and not toolcontext.opt_all.value then return
var csv = toolcontext.opt_csv.value
end
if csv then
- var csvh = new CSVDocument
+ var csvh = new CsvDocument
+ csvh.format = new CsvFormat('"', ';', "\n")
csvh.header = ["povr", "ovr", "pext", "ext", "pspe", "spe", "prep", "rep", "eq"]
for mclass in mclasses do
var povr = mclass.is_pure_overrider(vis).object_id
var prep = mclass.is_pure_replacer(vis).object_id
var rep = mclass.is_replacer(vis).object_id
var eq = mclass.is_equal(vis).object_id
- csvh.add_line(povr, ovr, pext, ext, pspe, spe, prep, rep, eq)
+ csvh.add_record(povr, ovr, pext, ext, pspe, spe, prep, rep, eq)
end
csvh.save("{out}/inheritance_behaviour.csv")
end