WIP
This commit is contained in:
@@ -37,25 +37,25 @@ void generator::generate_relationships(
|
||||
|
||||
namespace plantuml_common = clanguml::common::generators::plantuml;
|
||||
|
||||
if (f.type() == common::model::source_file_t::kDirectory) {
|
||||
util::for_each(f, [this, &ostr](const auto &file) {
|
||||
generate_relationships(
|
||||
dynamic_cast<const source_file &>(*file), ostr);
|
||||
});
|
||||
}
|
||||
else {
|
||||
util::for_each_if(
|
||||
f.relationships(),
|
||||
[this](const auto &r) {
|
||||
return m_model.should_include(r.type()) &&
|
||||
util::contains(m_generated_aliases, r.destination());
|
||||
},
|
||||
[&f, &ostr](const auto &r) {
|
||||
ostr << f.alias() << " "
|
||||
<< plantuml_common::to_plantuml(r.type(), r.style()) << " "
|
||||
<< r.destination() << '\n';
|
||||
});
|
||||
}
|
||||
// if (f.type() == common::model::source_file_t::kDirectory) {
|
||||
// util::for_each(f, [this, &ostr](const auto &file) {
|
||||
// generate_relationships(
|
||||
// dynamic_cast<const source_file &>(*file), ostr);
|
||||
// });
|
||||
// }
|
||||
// else {
|
||||
// util::for_each_if(
|
||||
// f.relationships(),
|
||||
// [this](const auto &r) {
|
||||
// return m_model.should_include(r.type()) &&
|
||||
// util::contains(m_generated_aliases, r.destination());
|
||||
// },
|
||||
// [&f, &ostr](const auto &r) {
|
||||
// ostr << f.alias() << " "
|
||||
// << plantuml_common::to_plantuml(r.type(), r.style()) << " "
|
||||
// << r.destination() << '\n';
|
||||
// });
|
||||
// }
|
||||
}
|
||||
|
||||
void generator::generate(const source_file &f, std::ostream &ostr) const
|
||||
|
||||
@@ -28,7 +28,7 @@ common::model::diagram_t diagram::type() const
|
||||
return common::model::diagram_t::kInclude;
|
||||
}
|
||||
|
||||
type_safe::optional_ref<const common::model::diagram_element> diagram::get(
|
||||
common::optional_ref<common::model::diagram_element> diagram::get(
|
||||
const std::string &full_name) const
|
||||
{
|
||||
return get_file(full_name);
|
||||
@@ -63,7 +63,7 @@ void diagram::add_file(std::unique_ptr<common::model::source_file> &&f)
|
||||
add_element(p, std::move(f));
|
||||
}
|
||||
|
||||
type_safe::optional_ref<const common::model::source_file> diagram::get_file(
|
||||
common::optional_ref<common::model::source_file> diagram::get_file(
|
||||
const std::string &name) const
|
||||
{
|
||||
for (const auto &p : files_) {
|
||||
@@ -72,7 +72,7 @@ type_safe::optional_ref<const common::model::source_file> diagram::get_file(
|
||||
}
|
||||
}
|
||||
|
||||
return type_safe::nullopt;
|
||||
return {};
|
||||
}
|
||||
|
||||
std::string diagram::to_alias(const std::string &full_name) const
|
||||
@@ -94,8 +94,7 @@ std::string diagram::to_alias(const std::string &full_name) const
|
||||
return source_file.value().alias();
|
||||
}
|
||||
|
||||
const std::vector<
|
||||
type_safe::object_ref<const common::model::source_file, false>> &
|
||||
const common::reference_vector<const common::model::source_file> &
|
||||
diagram::files() const
|
||||
{
|
||||
return files_;
|
||||
|
||||
@@ -20,8 +20,7 @@
|
||||
#include "common/model/diagram.h"
|
||||
#include "common/model/package.h"
|
||||
#include "common/model/source_file.h"
|
||||
|
||||
#include <type_safe/optional_ref.hpp>
|
||||
#include "common/types.h"
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
@@ -42,23 +41,21 @@ public:
|
||||
|
||||
common::model::diagram_t type() const override;
|
||||
|
||||
type_safe::optional_ref<const common::model::diagram_element> get(
|
||||
common::optional_ref<common::model::diagram_element> get(
|
||||
const std::string &full_name) const override;
|
||||
|
||||
void add_file(std::unique_ptr<common::model::source_file> &&f);
|
||||
|
||||
type_safe::optional_ref<const common::model::source_file> get_file(
|
||||
common::optional_ref<common::model::source_file> get_file(
|
||||
const std::string &name) const;
|
||||
|
||||
std::string to_alias(const std::string &full_name) const;
|
||||
|
||||
const std::vector<
|
||||
type_safe::object_ref<const common::model::source_file, false>> &
|
||||
const common::reference_vector<const common::model::source_file> &
|
||||
files() const;
|
||||
|
||||
private:
|
||||
std::vector<type_safe::object_ref<const common::model::source_file, false>>
|
||||
files_;
|
||||
common::reference_vector<const common::model::source_file> files_;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -1,43 +0,0 @@
|
||||
/**
|
||||
* src/include_diagram/model/visitor/element_visitor_context.cc
|
||||
*
|
||||
* Copyright (c) 2021-2022 Bartek Kryza <bkryza@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "element_visitor_context.h"
|
||||
|
||||
#include "translation_unit_context.h"
|
||||
|
||||
namespace clanguml::include_diagram::visitor {
|
||||
|
||||
template <typename T>
|
||||
element_visitor_context<T>::element_visitor_context(
|
||||
clanguml::include_diagram::model::diagram &diagram, T &element)
|
||||
: element_{element}
|
||||
, diagram_{diagram}
|
||||
{
|
||||
}
|
||||
|
||||
template <typename T> T &element_visitor_context<T>::element()
|
||||
{
|
||||
return element_;
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
clanguml::include_diagram::model::diagram &element_visitor_context<T>::diagram()
|
||||
{
|
||||
return diagram_;
|
||||
}
|
||||
}
|
||||
@@ -1,63 +0,0 @@
|
||||
/**
|
||||
* src/include_diagram/visitor/translation_unit_context.cc
|
||||
*
|
||||
* Copyright (c) 2021-2022 Bartek Kryza <bkryza@gmail.com>
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "translation_unit_context.h"
|
||||
|
||||
#include "cx/util.h"
|
||||
|
||||
namespace clanguml::include_diagram::visitor {
|
||||
|
||||
translation_unit_context::translation_unit_context(
|
||||
cppast::cpp_entity_index &idx,
|
||||
clanguml::include_diagram::model::diagram &diagram,
|
||||
const clanguml::config::include_diagram &config)
|
||||
: entity_index_{idx}
|
||||
, diagram_{diagram}
|
||||
, config_{config}
|
||||
{
|
||||
}
|
||||
|
||||
const cppast::cpp_entity_index &translation_unit_context::entity_index() const
|
||||
{
|
||||
return entity_index_;
|
||||
}
|
||||
|
||||
const clanguml::config::include_diagram &
|
||||
translation_unit_context::config() const
|
||||
{
|
||||
return config_;
|
||||
}
|
||||
|
||||
clanguml::include_diagram::model::diagram &translation_unit_context::diagram()
|
||||
{
|
||||
return diagram_;
|
||||
}
|
||||
|
||||
void translation_unit_context::set_current_file(
|
||||
type_safe::optional_ref<common::model::source_file> f)
|
||||
{
|
||||
current_file_ = f;
|
||||
}
|
||||
|
||||
type_safe::optional_ref<common::model::source_file>
|
||||
translation_unit_context::get_current_file() const
|
||||
{
|
||||
return current_file_;
|
||||
}
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user