Refactored sequence diagram call expression processing
This commit is contained in:
@@ -64,6 +64,19 @@ public:
|
||||
static_cast<T *>(participants.at(id).get()));
|
||||
}
|
||||
|
||||
template <typename T>
|
||||
const common::optional_ref<T> get_participant(
|
||||
common::model::diagram_element::id_t id) const
|
||||
{
|
||||
if (participants.find(id) == participants.end()) {
|
||||
return {};
|
||||
}
|
||||
|
||||
return common::optional_ref<T>(
|
||||
static_cast<T *>(participants.at(id).get()));
|
||||
}
|
||||
|
||||
|
||||
void add_participant(std::unique_ptr<participant> p)
|
||||
{
|
||||
const auto participant_id = p->id();
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -42,22 +42,22 @@ public:
|
||||
|
||||
bool shouldVisitTemplateInstantiations();
|
||||
|
||||
virtual bool VisitCallExpr(clang::CallExpr *expr);
|
||||
bool VisitCallExpr(clang::CallExpr *expr);
|
||||
|
||||
virtual bool VisitLambdaExpr(clang::LambdaExpr *expr);
|
||||
bool VisitLambdaExpr(clang::LambdaExpr *expr);
|
||||
|
||||
virtual bool TraverseLambdaExpr(clang::LambdaExpr *expr);
|
||||
bool TraverseLambdaExpr(clang::LambdaExpr *expr);
|
||||
|
||||
virtual bool VisitCXXMethodDecl(clang::CXXMethodDecl *method);
|
||||
bool VisitCXXMethodDecl(clang::CXXMethodDecl *method);
|
||||
|
||||
virtual bool VisitCXXRecordDecl(clang::CXXRecordDecl *cls);
|
||||
bool VisitCXXRecordDecl(clang::CXXRecordDecl *cls);
|
||||
|
||||
virtual bool VisitClassTemplateDecl(clang::ClassTemplateDecl *cls);
|
||||
bool VisitClassTemplateDecl(clang::ClassTemplateDecl *cls);
|
||||
|
||||
virtual bool VisitClassTemplateSpecializationDecl(
|
||||
bool VisitClassTemplateSpecializationDecl(
|
||||
clang::ClassTemplateSpecializationDecl *cls);
|
||||
|
||||
virtual bool VisitFunctionDecl(clang::FunctionDecl *function_declaration);
|
||||
bool VisitFunctionDecl(clang::FunctionDecl *function_declaration);
|
||||
|
||||
bool VisitFunctionTemplateDecl(
|
||||
clang::FunctionTemplateDecl *function_declaration);
|
||||
@@ -203,6 +203,21 @@ private:
|
||||
const clang::CXXDependentScopeMemberExpr *dependent_member_callee)
|
||||
const;
|
||||
|
||||
bool process_operator_call_expression(model::message &m,
|
||||
const clang::CXXOperatorCallExpr *operator_call_expr);
|
||||
|
||||
bool process_class_method_call_expression(
|
||||
model::message &m, const clang::CXXMemberCallExpr *operator_call_expr);
|
||||
|
||||
bool process_class_template_method_call_expression(
|
||||
model::message &m, const clang::CallExpr *expr);
|
||||
|
||||
bool process_function_call_expression(
|
||||
model::message &m, const clang::CallExpr *expr);
|
||||
|
||||
bool process_unresolved_lookup_call_expression(
|
||||
model::message &m, const clang::CallExpr *expr);
|
||||
|
||||
// Reference to the output diagram model
|
||||
clanguml::sequence_diagram::model::diagram &diagram_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user