Refactored include and exclude filters

This commit is contained in:
Bartek Kryza
2022-03-27 19:32:58 +02:00
parent 6800baea55
commit 36065a7819
61 changed files with 606 additions and 307 deletions

View File

@@ -17,18 +17,44 @@
*/
#pragma once
#include "enums.h"
#include <memory>
#include <string>
namespace clanguml::common::model {
class diagram_filter;
class namespace_;
class element;
class relationship;
class diagram {
public:
std::string name() const;
diagram();
virtual ~diagram();
diagram(const diagram &) = delete;
diagram(diagram &&);
diagram &operator=(const diagram &) = delete;
diagram &operator=(diagram &&);
void set_name(const std::string &name);
std::string name() const;
void set_filter(std::unique_ptr<diagram_filter> filter);
// TODO: refactor to a template method
bool should_include(const element &e) const;
bool should_include(const std::string &e) const;
bool should_include(const relationship r) const;
bool should_include(const relationship_t r) const;
bool should_include(const scope_t s) const;
bool should_include(const namespace_ &ns, const std::string &name) const;
private:
std::string name_;
std::unique_ptr<diagram_filter> filter_;
};
}