Refactored class, include and package diagrams visitor to output filtered intermediate diagram (#289)

This commit is contained in:
Bartek Kryza
2024-07-23 14:33:21 +02:00
parent cadbeba82c
commit 2004d25bdd
30 changed files with 403 additions and 358 deletions

View File

@@ -18,6 +18,7 @@
#include "diagram_element.h"
#include "common/model/filters/diagram_filter.h"
#include "util/util.h"
#include <ostream>
@@ -102,6 +103,19 @@ bool diagram_element::complete() const { return complete_; }
void diagram_element::complete(bool completed) { complete_ = completed; }
void diagram_element::apply_filter(
const diagram_filter &filter, const std::set<eid_t> &removed)
{
common::model::apply_filter(relationships(), filter);
auto &rels = relationships();
rels.erase(std::remove_if(std::begin(rels), std::end(rels),
[&removed](auto &&r) {
return removed.count(r.destination()) > 0;
}),
std::end(rels));
}
bool operator==(const diagram_element &l, const diagram_element &r)
{
return l.id() == r.id();