- fun collect_intro_and_redef_mpropdefs(view: ModelView): Set[MPropDef] do
- var set = new HashSet[MPropDef]
- set.add_all collect_intro_mpropdefs(view)
- set.add_all collect_redef_mpropdefs(view)
+ # Collect intro abstract mmethodDef
+ fun collect_abstract_methods(filter: ModelFilter): Set[MMethodDef] do
+ var set = new HashSet[MMethodDef]
+ var mpropdefs = collect_intro_mpropdefs(filter)
+ for mpropdef in mpropdefs do
+ if mpropdef isa MMethodDef then
+ if mpropdef.is_abstract then set.add(mpropdef)
+ end
+ end
+ return set
+ end
+
+ # Collect not defined properties
+ fun collect_not_define_properties(filter: ModelFilter):Set[MMethodDef] do
+ var set = new HashSet[MMethodDef]
+ for mpropdef in collect_abstract_methods(filter) do
+ var redef_count = 0
+ for mprop in mpropdef.mproperty.mpropdefs do
+ if mprop.is_abstract then continue
+ redef_count += 1
+ end
+ if redef_count == 0 then set.add(mpropdef)
+ end