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 apps/SchemaEditor/SchemaCustomSuperClassModel.cpp).
5 :
6 : #include "dbe/SchemaCustomSuperClassModel.hpp"
7 :
8 : using namespace dunedaq::oks;
9 :
10 0 : dbse::CustomSuperClassModel::CustomSuperClassModel ( OksClass * ClassInfo,
11 0 : QStringList Headers, bool Derived )
12 : : CustomModelInterface ( Headers ),
13 0 : SchemaClass ( ClassInfo ),
14 0 : SchemaDerived ( Derived )
15 : {
16 0 : setupModel();
17 0 : }
18 :
19 0 : void dbse::CustomSuperClassModel::setupModel()
20 : {
21 0 : Data.clear();
22 :
23 0 : std::set<std::string> direct_classes;
24 0 : const auto& directClasses = SchemaClass->direct_super_classes();
25 0 : if(directClasses != nullptr) {
26 0 : for(const std::string* cl : *directClasses) {
27 0 : direct_classes.insert(*cl);
28 : }
29 : }
30 :
31 0 : std::list<std::string> SuperClassList;
32 0 : if ( SchemaDerived )
33 : {
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 : }
41 : else
42 : {
43 0 : for (auto cls : direct_classes) {
44 0 : SuperClassList.push_back(cls);
45 0 : }
46 : }
47 :
48 0 : for ( std::string cls : SuperClassList )
49 : {
50 0 : QStringList row;
51 0 : row.append ( QString::fromStdString ( cls ) );
52 0 : if (direct_classes.contains(cls)) {
53 0 : row.append("D");
54 : }
55 : else {
56 0 : row.append("I");
57 : }
58 0 : Data.append ( row );
59 0 : }
60 0 : }
61 :
62 0 : dbse::CustomSuperClassModel::~CustomSuperClassModel() = default;
|