0.6.0
C++ to UML diagram generator based on Clang
Loading...
Searching...
No Matches
src
class_diagram
model
enum.cc
Go to the documentation of this file.
1
/**
2
* @file src/class_diagram/model/enum.cc
3
*
4
* Copyright (c) 2021-2025 Bartek Kryza <bkryza@gmail.com>
5
*
6
* Licensed under the Apache License, Version 2.0 (the "License");
7
* you may not use this file except in compliance with the License.
8
* You may obtain a copy of the License at
9
*
10
* http://www.apache.org/licenses/LICENSE-2.0
11
*
12
* Unless required by applicable law or agreed to in writing, software
13
* distributed under the License is distributed on an "AS IS" BASIS,
14
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
* See the License for the specific language governing permissions and
16
* limitations under the License.
17
*/
18
19
#include "
enum.h
"
20
21
#include "
util/util.h
"
22
23
#include <sstream>
24
25
namespace
clanguml::class_diagram::model
{
26
27
enum_::enum_
(
const
common::model::namespace_
&using_namespace)
28
: element{using_namespace}
29
{
30
}
31
32
bool
operator==
(
const
enum_
&l,
const
enum_
&r)
33
{
34
return
(l.
get_namespace
() == r.
get_namespace
()) && (l.
name
() == r.
name
());
35
}
36
37
std::string
enum_::full_name_impl
(
bool
relative)
const
38
{
39
using namespace
clanguml::util
;
40
using
clanguml::common::model::namespace_
;
41
42
std::string res;
43
44
if
(relative)
45
res =
using_namespace
().
relative
(namespace_{
name_and_ns
()}.to_string());
46
else
47
res =
name_and_ns
();
48
49
return
res;
50
}
51
52
std::vector<std::string> &
enum_::constants
() {
return
constants_
; }
53
54
const
std::vector<std::string> &
enum_::constants
()
const
{
return
constants_
; }
55
56
std::optional<std::string>
enum_::doxygen_link
()
const
57
{
58
auto
name
=
name_and_ns
();
59
util::replace_all
(
name
,
"_"
,
"__"
);
60
util::replace_all
(
name
,
"##"
,
"::"
);
61
util::replace_all
(
name
,
"::"
,
"_1_1"
);
62
return
fmt::format(
"enum{}.html"
,
name
);
63
}
64
}
// namespace clanguml::class_diagram::model
Copyright © 2022-present
Bartek Kryza
Generated by
1.9.7