101{
102 GraphicalClass GraphicalClassObject;
103
104 GraphicalClassObject.GraphicalUID = QString(Object.
UID().c_str());
105 dunedaq::conffwk::class_t cinfo = ConfigFile->get_class_info(Object.
class_name(),
false);
106
109
110 for (dunedaq::conffwk::attribute_t const& attr : attributes) {
112
113 if (attr.p_name == "Name") {
114 GraphicalClassObject.DatabaseClassName =
data.at(0);
115 } else if (attr.p_name == "Generic Pixmap File") {
116 GraphicalClassObject.GenericPixmapFile =
data.at(0);
117 } else if (attr.p_name == "Used Pixmap File") {
118 GraphicalClassObject.UsedPixmapFile =
data.at(0);
119 } else if (attr.p_name == "Icon Bitmap File") {
120 GraphicalClassObject.BitmapFile =
data.at(0);
121 } else if (attr.p_name == "Icon Mask Bitmap File") {
122 GraphicalClassObject.BitmapMaskFile =
data.at(0);
123 } else if (attr.p_name == "Show All Attributes") {
124 GraphicalClassObject.ShowAllAttributes =
convert::to<bool>(data, attr.p_int_format);
125 } else if (attr.p_name == "Attributes") {
126 GraphicalClassObject.Attributes =
data;
127 } else if (attr.p_name == "Show All Relationships") {
128 GraphicalClassObject.ShowAllRelationships =
convert::to<bool>(data, attr.p_int_format);
129 } else if (attr.p_name == "Relationships") {
130 GraphicalClassObject.Relationships =
data;
131
132 } else if (attr.p_name == "Icon Title") {
133 GraphicalClassObject.IconTitle =
data.at(0);
134 }
135 }
136
137 for (dunedaq::conffwk::relationship_t const& relation : relations) {
139 std::vector<ConfigObject> neighboring{};
140
143 } else {
144 std::vector<ConfigObject> objects =
146 neighboring.insert(std::end(neighboring), std::begin(objects), std::end(objects));
147 }
148
149 for (ConfigObject& RelObject : neighboring) {
150 dunedaq::conffwk::class_t RelClassInfo = ConfigFile->get_class_info(RelObject.class_name(), false);
151 std::vector<dunedaq::conffwk::attribute_t> AttributeRelList = RelClassInfo.
p_attributes;
152
153 if (RelObject.class_name() == "Dual Relationship") {
154 DualRelationship DRel;
155
156 for (dunedaq::conffwk::attribute_t& Attribute : AttributeRelList) {
158
159 if (Attribute.p_name == "Direct") {
160 DRel.Direct =
data.at(0);
161 } else if (Attribute.p_name == "Reverse") {
162 DRel.Reverse =
data.at(0);
163 }
164 }
165
166 GraphicalClassObject.DualRelationships.push_back(DRel);
167 } else if (RelObject.class_name() == "Init Attribute Value") {
168 InitAttributeFromEnv IRel;
169
170 for (dunedaq::conffwk::attribute_t& Attribute : AttributeRelList) {
172
173 if (Attribute.p_name == "Attribute Name") {
174 IRel.AttributeName =
data.at(0);
175 } else if (Attribute.p_name == "Environment Variables") {
176 IRel.EnvNames =
data;
177 }
178 }
179
180 GraphicalClassObject.NeedToInitialize.push_back(IRel);
181 }
182 }
183 }
184
185 this_graphical.emplace(GraphicalClassObject.GraphicalUID.toStdString(), GraphicalClassObject);
186}
friend class dbe::config::api::get::attribute
static T linked(dunedaq::conffwk::ConfigObject &item, dunedaq::conffwk::relationship_t const &relation)
const std::string & UID() const noexcept
Return object identity.
const std::string & class_name() const noexcept
Return object's class name.
std::vector< T > attributes(tref const &item)
T relation(tref item, dunedaq::conffwk::relationship_t const &relation)
std::vector< T > relations(tref const &item)
bool is_simple(dunedaq::conffwk::relationship_t const &)
bool to< bool >(QStringList const &DataList, dunedaq::conffwk::int_format_t Format)
const std::vector< attribute_t > p_attributes
const std::vector< relationship_t > p_relationships