Enabled adding notes to class methods and members (fixes #87)
This commit is contained in:
@@ -266,6 +266,26 @@ void generator::generate(const class_ &c, std::ostream &ostr) const
|
||||
ostr << "}" << '\n';
|
||||
|
||||
generate_notes(ostr, c);
|
||||
|
||||
for (const auto &member : c.members())
|
||||
generate_member_notes(ostr, member, c.alias());
|
||||
|
||||
for (const auto &method : c.methods())
|
||||
generate_member_notes(ostr, method, c.alias());
|
||||
}
|
||||
|
||||
void generator::generate_member_notes(std::ostream &ostr,
|
||||
const class_element &member, const std::string &alias) const
|
||||
{
|
||||
for (const auto &decorator : member.decorators()) {
|
||||
auto note = std::dynamic_pointer_cast<decorators::note>(decorator);
|
||||
if (note && note->applies_to_diagram(m_config.name)) {
|
||||
ostr << "note " << note->position << " of " << alias
|
||||
<< "::" << member.name() << '\n'
|
||||
<< note->text << '\n'
|
||||
<< "end note\n";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void generator::generate_relationships(
|
||||
@@ -557,4 +577,5 @@ void generator::generate(std::ostream &ostr) const
|
||||
|
||||
ostr << "@enduml" << '\n';
|
||||
}
|
||||
|
||||
} // namespace clanguml::class_diagram::generators::plantuml
|
||||
|
||||
@@ -45,6 +45,7 @@ using common_generator =
|
||||
clanguml::common::generators::plantuml::generator<C, D>;
|
||||
|
||||
using clanguml::class_diagram::model::class_;
|
||||
using clanguml::class_diagram::model::class_element;
|
||||
using clanguml::class_diagram::model::enum_;
|
||||
using clanguml::common::model::access_t;
|
||||
using clanguml::common::model::package;
|
||||
@@ -75,6 +76,9 @@ public:
|
||||
|
||||
void generate_relationships(const package &p, std::ostream &ostr) const;
|
||||
|
||||
void generate_member_notes(std::ostream &ostream,
|
||||
const class_element &member, const std::string &basicString) const;
|
||||
|
||||
void generate(std::ostream &ostr) const override;
|
||||
|
||||
private:
|
||||
|
||||
Reference in New Issue
Block a user