2 * AliEMCALConfigHandler.cxx
4 * Created on: 06.11.2014
11 #include "AliEMCALConfigHandler.h"
12 #include "AliEMCALConfiguration.h"
13 #include "AliJSONData.h"
15 ClassImp(AliEMCALConfigHandler)
17 AliEMCALConfigHandler::AliEMCALConfigHandler() :
21 fConfiguration = new TList;
22 fConfiguration->SetOwner();
25 AliEMCALConfigHandler::~AliEMCALConfigHandler() {
26 delete fConfiguration;
29 AliEMCALConfiguration *AliEMCALConfigHandler::CreateConfiguration(const char* name) {
30 AliEMCALConfiguration *config = FindConfiguration(name);
32 this->Error("AliEMCALConfigHandler::CreateConfiguration", "Configuration with name %s already exists, not duplicating", name);
34 config = new AliEMCALConfiguration(name);
35 fConfiguration->Add(config);
40 void AliEMCALConfigHandler::AddParam(const char* configName, const char* key,
41 AliJSONValue* value) {
42 AliEMCALConfiguration *config = FindConfiguration(configName);
44 this->Warning("AliEMCALConfigHandler", "Configuration with name %s does not exist, creating it", configName);
45 CreateConfiguration(configName);
47 config->AddParam(key, value);
50 const char *AliEMCALConfigHandler::GetConfigurationString() const {
51 std::stringstream jsonbuilder;
53 TIter confentries(fConfiguration);
55 for(TIter it = confentries.Begin(); it != confentries.End(); ++it){
56 AliEMCALConfiguration *conf = static_cast<AliEMCALConfiguration *>(*it);
57 if(!isFirst) jsonbuilder << ",";
58 jsonbuilder << "\"" << conf->GetName() << "\":" << conf->CreateJSONString();
59 if(isFirst) isFirst = false;
62 return jsonbuilder.str().c_str();
65 const char *AliEMCALConfigHandler::GetConfigurationString(const char* configname) const {
66 AliEMCALConfiguration *conf = FindConfiguration(configname);
68 return conf->CreateJSONString();
71 AliEMCALConfiguration* AliEMCALConfigHandler::FindConfiguration(const char* configName) const {
72 return dynamic_cast<AliEMCALConfiguration *>(fConfiguration->FindObject(configName));