Added doxygen comments to common namespace

This commit is contained in:
Bartek Kryza
2023-06-18 20:23:29 +02:00
parent da2cb63ab3
commit f424ed4c8c
63 changed files with 1063 additions and 171 deletions

View File

@@ -1,5 +1,5 @@
/**
* src/common/model/template_trait.h
* @file src/common/model/template_trait.h
*
* Copyright (c) 2021-2023 Bartek Kryza <bkryza@gmail.com>
*
@@ -25,30 +25,52 @@
namespace clanguml::common::model {
/**
* @brief Common interface for template diagram elements.
*
* @embed{template_trait_hierarchy_class.svg}
*/
class template_trait {
public:
/**
* Render the template parameters to a stream.
*
* @param ostr Output stream
* @param using_namespace Relative to namespace
* @param relative Whether to make template arguments relative to
* `using_namespace`
* @return Reference to output stream
*/
std::ostream &render_template_params(std::ostream &ostr,
const common::model::namespace_ &using_namespace, bool relative) const;
void set_base_template(const std::string &full_name);
std::string base_template() const;
/**
* Add template parameter
*
* @param tmplt Template parameter
*/
void add_template(template_parameter &&tmplt);
/**
* Get reference to template parameters.
*
* @return Reference to template parameters list.
*/
const std::vector<template_parameter> &template_params() const;
/**
* @brief Wrapper around @ref
* calculate_template_params_specialization_match()
*
* @param other Other template diagram element
* @return Match value
*/
int calculate_template_specialization_match(
const template_trait &other) const;
bool is_implicit() const;
void set_implicit(bool implicit);
private:
std::vector<template_parameter> templates_;
std::string base_template_full_name_;
bool is_implicit_{false};
};
} // namespace clanguml::common::model