Removed usr from class diagram generator and visitor
This commit is contained in:
@@ -70,22 +70,6 @@ struct decorated_element {
|
||||
std::string style_spec();
|
||||
};
|
||||
|
||||
class element : public decorated_element {
|
||||
public:
|
||||
element();
|
||||
|
||||
std::string alias() const;
|
||||
|
||||
std::string name;
|
||||
std::vector<std::string> namespace_;
|
||||
|
||||
protected:
|
||||
const uint64_t m_id{0};
|
||||
|
||||
private:
|
||||
static std::atomic_uint64_t m_nextId;
|
||||
};
|
||||
|
||||
struct class_element : public decorated_element {
|
||||
scope_t scope;
|
||||
std::string name;
|
||||
@@ -143,6 +127,44 @@ struct class_template {
|
||||
friend bool operator==(const class_template &l, const class_template &r);
|
||||
};
|
||||
|
||||
class element : public decorated_element {
|
||||
public:
|
||||
element(const std::vector<std::string> &using_namespaces);
|
||||
|
||||
std::string alias() const;
|
||||
|
||||
void set_name(const std::string &name) { name_ = name; }
|
||||
|
||||
std::string name() const { return name_; }
|
||||
|
||||
void set_namespace(const std::vector<std::string> &ns) { namespace_ = ns; }
|
||||
|
||||
std::vector<std::string> get_namespace() const { return namespace_; }
|
||||
|
||||
virtual std::string full_name(bool relative) const { return name(); }
|
||||
|
||||
void set_using_namespaces(const std::vector<std::string> &un);
|
||||
|
||||
const std::vector<std::string> &using_namespaces() const;
|
||||
|
||||
std::vector<class_relationship> &relationships();
|
||||
|
||||
const std::vector<class_relationship> &relationships() const;
|
||||
|
||||
void add_relationship(class_relationship &&cr);
|
||||
|
||||
protected:
|
||||
const uint64_t m_id{0};
|
||||
|
||||
private:
|
||||
std::string name_;
|
||||
std::vector<std::string> namespace_;
|
||||
std::vector<std::string> using_namespaces_;
|
||||
std::vector<class_relationship> relationships_;
|
||||
|
||||
static std::atomic_uint64_t m_nextId;
|
||||
};
|
||||
|
||||
struct type_alias {
|
||||
std::string alias;
|
||||
std::string underlying_type;
|
||||
@@ -150,7 +172,11 @@ struct type_alias {
|
||||
|
||||
class class_ : public element, public stylable_element {
|
||||
public:
|
||||
std::string usr;
|
||||
class_(const std::vector<std::string> &using_namespaces)
|
||||
: element{using_namespaces}
|
||||
{
|
||||
}
|
||||
|
||||
bool is_struct{false};
|
||||
bool is_template{false};
|
||||
bool is_template_instantiation{false};
|
||||
@@ -158,31 +184,39 @@ public:
|
||||
std::vector<class_method> methods;
|
||||
std::vector<class_parent> bases;
|
||||
std::vector<std::string> inner_classes;
|
||||
std::vector<class_relationship> relationships;
|
||||
std::vector<class_template> templates;
|
||||
std::string base_template_usr;
|
||||
std::string base_template_full_name;
|
||||
std::map<std::string, type_alias> type_aliases;
|
||||
|
||||
friend bool operator==(const class_ &l, const class_ &r);
|
||||
|
||||
void add_type_alias(type_alias &&ta);
|
||||
|
||||
void add_relationship(class_relationship &&cr);
|
||||
|
||||
std::string full_name(
|
||||
const std::vector<std::string> &using_namespaces) const;
|
||||
std::string full_name(bool relative = true) const override;
|
||||
|
||||
bool is_abstract() const;
|
||||
|
||||
private:
|
||||
std::string full_name_;
|
||||
};
|
||||
|
||||
struct enum_ : public element, public stylable_element {
|
||||
std::vector<std::string> constants;
|
||||
std::vector<class_relationship> relationships;
|
||||
public:
|
||||
enum_(const std::vector<std::string> &using_namespaces)
|
||||
: element{using_namespaces}
|
||||
{
|
||||
}
|
||||
|
||||
friend bool operator==(const enum_ &l, const enum_ &r);
|
||||
|
||||
std::string full_name(
|
||||
const std::vector<std::string> &using_namespaces) const;
|
||||
std::string full_name(bool relative = true) const override;
|
||||
|
||||
std::vector<std::string> &constants() { return constants_; }
|
||||
|
||||
const std::vector<std::string> &constants() const { return constants_; }
|
||||
|
||||
private:
|
||||
std::vector<std::string> constants_;
|
||||
};
|
||||
|
||||
struct diagram {
|
||||
@@ -191,7 +225,7 @@ struct diagram {
|
||||
std::vector<enum_> enums;
|
||||
std::map<std::string, type_alias> type_aliases;
|
||||
|
||||
bool has_class(const std::string &usr) const;
|
||||
bool has_class(const class_ &c) const;
|
||||
|
||||
void add_type_alias(type_alias &&ta);
|
||||
|
||||
@@ -199,11 +233,7 @@ struct diagram {
|
||||
|
||||
void add_enum(enum_ &&e);
|
||||
|
||||
std::string to_alias(const std::vector<std::string> &using_namespaces,
|
||||
const std::string &full_name) const;
|
||||
|
||||
std::string usr_to_name(const std::vector<std::string> &using_namespaces,
|
||||
const std::string &usr) const;
|
||||
std::string to_alias(const std::string &full_name) const;
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user