A list of filters that can be applied on a MEntity
By default ModelFilter accepts all mentity.
~~~nit
var filter = new ModelFilter
assert filter.accept_mentity(my_mentity) == true
~~~
To quickly configure the filters, options can be passed to the constructor:
~~~nit
var filter = new ModelFilter(
min_visibility = protected_visibility,
accept_fictive = false,
accept_test = false,
accept_redef = false,
accept_extern = false,
accept_attribute = false,
accept_empty_doc = false
)
~~~
With this, one can use temporary filters with the model visitors and views:
~~~nit
var default_filter = new ModelFilter(private_visibility)
var view = new ModelView(view, default_filter)
# ...
if view.accept_mentity(mentity) then
# ...
end
# ...
var custom_filter = new ModelFilter(public_visibility)
if view.accept_mentity(mentity, custom_filter) then
# ...
end
~~~
Pull-Request: #2567
Reviewed-by: Jean Privat <jean@pryen.org>