Line data Source code
1 : // DUNE DAQ modification notice:
2 : // This file has been modified from the original ATLAS dbe source for the DUNE DAQ project.
3 : // Fork baseline commit: dbe-02-12-17 (2022-05-12).
4 : // Renamed since fork: yes (from src/SchemaEditor/SchemaCustomSuperClassModel.cpp to
5 : // apps/SchemaEditor/SchemaCustomSuperClassModel.cpp).
6 :
7 : #include "dbe/SchemaCustomSuperClassModel.hpp"
8 :
9 : using namespace dunedaq::oks;
10 :
11 0 : dbse::CustomSuperClassModel::CustomSuperClassModel(OksClass* ClassInfo, QStringList Headers, bool Derived)
12 : : CustomModelInterface(Headers)
13 0 : , SchemaClass(ClassInfo)
14 0 : , SchemaDerived(Derived)
15 : {
16 0 : setupModel();
17 0 : }
18 :
19 : void
20 0 : dbse::CustomSuperClassModel::setupModel()
21 : {
22 0 : Data.clear();
23 :
24 0 : std::set<std::string> direct_classes;
25 0 : const auto& directClasses = SchemaClass->direct_super_classes();
26 0 : if (directClasses != nullptr) {
27 0 : for (const std::string* cl : *directClasses) {
28 0 : direct_classes.insert(*cl);
29 : }
30 : }
31 :
32 0 : std::list<std::string> SuperClassList;
33 0 : if (SchemaDerived) {
34 0 : const OksClass::FList* allClasses = SchemaClass->all_super_classes();
35 0 : if (allClasses != nullptr) {
36 0 : for (const OksClass* cl : *allClasses) {
37 0 : SuperClassList.push_back(cl->get_name());
38 : }
39 : }
40 : } else {
41 0 : for (auto cls : direct_classes) {
42 0 : SuperClassList.push_back(cls);
43 0 : }
44 : }
45 :
46 0 : for (std::string cls : SuperClassList) {
47 0 : QStringList row;
48 0 : row.append(QString::fromStdString(cls));
49 0 : if (direct_classes.contains(cls)) {
50 0 : row.append("D");
51 : } else {
52 0 : row.append("I");
53 : }
54 0 : Data.append(row);
55 0 : }
56 0 : }
57 :
58 0 : dbse::CustomSuperClassModel::~CustomSuperClassModel() = default;
|