redef fun name do return "cbms"
redef fun desc do return "branch mean size, mean number of introduction available among ancestors"
redef fun name do return "cbms"
redef fun desc do return "branch mean size, mean number of introduction available among ancestors"
redef fun name do return "cnvi"
redef fun desc do return "class novelty index, contribution of the class to its branch in term of introductions"
redef fun name do return "cnvi"
redef fun desc do return "class novelty index, contribution of the class to its branch in term of introductions"
redef fun name do return "cnvs"
redef fun desc do return "class novelty score, importance of the contribution of the class to its branch"
redef fun name do return "cnvs"
redef fun desc do return "class novelty score, importance of the contribution of the class to its branch"
var mainmodule: MModule
redef fun collect(mclasses) do
var cnvi = new CNVI(mainmodule)
cnvi.collect(mclasses)
for mclass in mclasses do
var mainmodule: MModule
redef fun collect(mclasses) do
var cnvi = new CNVI(mainmodule)
cnvi.collect(mclasses)
for mclass in mclasses do
# pure overriders contain only redefinitions
private fun is_pure_overrider(min_visibility: MVisibility): Bool do
# pure overriders contain only redefinitions
private fun is_pure_overrider(min_visibility: MVisibility): Bool do
- var news = intro_mproperties(min_visibility).length
- var locs = local_mproperties(min_visibility).length
+ var news = collect_intro_mproperties(min_visibility).length
+ var locs = collect_local_mproperties(min_visibility).length
if news == 0 and locs > 0 then return true
return false
end
# overriders contain more definitions than introductions
private fun is_overrider(min_visibility: MVisibility): Bool do
if news == 0 and locs > 0 then return true
return false
end
# overriders contain more definitions than introductions
private fun is_overrider(min_visibility: MVisibility): Bool do
- var rdfs = redef_mproperties(min_visibility).length
- var news = intro_mproperties(min_visibility).length
- var locs = local_mproperties(min_visibility).length
+ var rdfs = collect_redef_mproperties(min_visibility).length
+ var news = collect_intro_mproperties(min_visibility).length
+ var locs = collect_local_mproperties(min_visibility).length
if rdfs >= news and locs > 0 then return true
return false
end
# pure extenders contain only introductions
private fun is_pure_extender(min_visibility: MVisibility): Bool do
if rdfs >= news and locs > 0 then return true
return false
end
# pure extenders contain only introductions
private fun is_pure_extender(min_visibility: MVisibility): Bool do
- var rdfs = redef_mproperties(min_visibility).length
- var locs = local_mproperties(min_visibility).length
+ var rdfs = collect_redef_mproperties(min_visibility).length
+ var locs = collect_local_mproperties(min_visibility).length
if rdfs == 0 and locs > 0 then return true
return false
end
# extenders contain more introduction than redefinitions
private fun is_extender(min_visibility: MVisibility): Bool do
if rdfs == 0 and locs > 0 then return true
return false
end
# extenders contain more introduction than redefinitions
private fun is_extender(min_visibility: MVisibility): Bool do
- var rdfs = redef_mproperties(min_visibility).length
- var news = intro_mproperties(min_visibility).length
- var locs = local_mproperties(min_visibility).length
+ var rdfs = collect_redef_mproperties(min_visibility).length
+ var news = collect_intro_mproperties(min_visibility).length
+ var locs = collect_local_mproperties(min_visibility).length
# pure specializers always call to super in its redefinitions
private fun is_pure_specializer(min_visibility: MVisibility): Bool do
var ovrs = overriden_mproperties(min_visibility).length
# pure specializers always call to super in its redefinitions
private fun is_pure_specializer(min_visibility: MVisibility): Bool do
var ovrs = overriden_mproperties(min_visibility).length
private fun is_specializer(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
var ovrs = overriden_mproperties(min_visibility).length
private fun is_specializer(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
var ovrs = overriden_mproperties(min_visibility).length
# pure replacers never call to super in its redefinitions
private fun is_pure_replacer(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
# pure replacers never call to super in its redefinitions
private fun is_pure_replacer(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
private fun is_replacer(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
var ovrs = overriden_mproperties(min_visibility).length
private fun is_replacer(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
var ovrs = overriden_mproperties(min_visibility).length
private fun is_equal(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
var ovrs = overriden_mproperties(min_visibility).length
private fun is_equal(min_visibility: MVisibility): Bool do
var spcs = extended_mproperties(min_visibility).length
var ovrs = overriden_mproperties(min_visibility).length