0.5.4
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes | List of all members
clanguml::common::model::element_view< T > Class Template Reference

Detailed Description

template<typename T>
class clanguml::common::model::element_view< T >

Provides type based views over elements in a diagram.

Template Parameters
TType of diagram element

Definition at line 31 of file element_view.h.

#include <element_view.h>

Public Member Functions

void add (std::reference_wrapper< T > element)
 Add reference to diagram element.
 
const reference_vector< T > & view () const
 Get collection of reference to diagram elements.
 
reference_vector< T > & view ()
 Get collection of reference to diagram elements.
 
common::optional_ref< T > get (eid_t id) const
 Get typed diagram element by id.
 
bool is_empty () const
 Check whether the element view is empty.
 
void remove (const std::set< eid_t > &element_ids)
 

Private Attributes

reference_vector< T > elements_
 

Member Function Documentation

◆ add()

template<typename T >
void clanguml::common::model::element_view< T >::add ( std::reference_wrapper< T >  element)
inline

Add reference to diagram element.

Parameters
elementReference to diagram element of specific type

Definition at line 38 of file element_view.h.

39 {
40 elements_.emplace_back(std::move(element));
41 }

◆ get()

template<typename T >
common::optional_ref< T > clanguml::common::model::element_view< T >::get ( eid_t  id) const
inline

Get typed diagram element by id.

Parameters
idGlobal id of a diagram element
Returns

Definition at line 63 of file element_view.h.

64 {
65 for (const auto &e : elements_) {
66 if (e.get().id() == id) {
67 return {e};
68 }
69 }
70
71 return {};
72 }

◆ is_empty()

template<typename T >
bool clanguml::common::model::element_view< T >::is_empty ( ) const
inline

Check whether the element view is empty.

Returns
True, if the view does not contain any elements

Definition at line 79 of file element_view.h.

79{ return elements_.empty(); }

◆ remove()

template<typename T >
void clanguml::common::model::element_view< T >::remove ( const std::set< eid_t > &  element_ids)
inline

Definition at line 81 of file element_view.h.

82 {
83 elements_.erase(std::remove_if(elements_.begin(), elements_.end(),
84 [&element_ids](auto &&e) {
85 return element_ids.count(e.get().id()) > 0;
86 }),
87 elements_.end());
88 }

◆ view() [1/2]

template<typename T >
reference_vector< T > & clanguml::common::model::element_view< T >::view ( )
inline

Get collection of reference to diagram elements.

Returns

Definition at line 55 of file element_view.h.

55{ return elements_; }

◆ view() [2/2]

template<typename T >
const reference_vector< T > & clanguml::common::model::element_view< T >::view ( ) const
inline

Get collection of reference to diagram elements.

Returns

Definition at line 48 of file element_view.h.

48{ return elements_; }

Member Data Documentation

◆ elements_

template<typename T >
reference_vector<T> clanguml::common::model::element_view< T >::elements_
private

Definition at line 91 of file element_view.h.


The documentation for this class was generated from the following file: