File indexing completed on 2023-10-25 09:46:59
0001 #include "FWCore/Framework/interface/NoDataException.h"
0002
0003 namespace edm {
0004 namespace eventsetup {
0005
0006 NoDataExceptionBase::NoDataExceptionBase(const EventSetupRecordKey& iRecordKey,
0007 const DataKey& iDataKey,
0008 const char* category_name)
0009 : cms::Exception(category_name), record_(iRecordKey), dataKey_(iDataKey) {}
0010
0011 NoDataExceptionBase::~NoDataExceptionBase() noexcept {}
0012
0013 const DataKey& NoDataExceptionBase::dataKey() const { return dataKey_; }
0014
0015 std::string NoDataExceptionBase::providerButNoDataMessage(const EventSetupRecordKey& iKey) {
0016 return std::string(" A provider for this data exists, but it's unable to deliver the data for this \"") +
0017 iKey.name() +
0018 "\" record.\n Perhaps no valid data exists for this IOV? Please check the data's interval of validity.\n";
0019 }
0020
0021 std::string NoDataExceptionBase::noProviderMessage() {
0022 return std::string("Please add an ESSource or ESProducer to your job which can deliver this data.\n");
0023 }
0024
0025 void NoDataExceptionBase::beginDataTypeMessage(std::string& oString) const {
0026 oString += std::string("No data of type \"");
0027 }
0028
0029 void NoDataExceptionBase::endDataTypeMessage(std::string& oString) const {
0030 oString += "\" with label \"";
0031 oString += this->dataKey_.name().value();
0032 oString += "\" in record \"";
0033 oString += this->record_.name();
0034 oString += "\"";
0035 }
0036
0037 void NoDataExceptionBase::constructMessage(const char* iClassName, const std::string& iExtraInfo) {
0038 std::string message;
0039 beginDataTypeMessage(message);
0040 message += iClassName;
0041 endDataTypeMessage(message);
0042 this->append(message + std::string("\n "));
0043 this->append(iExtraInfo);
0044 }
0045
0046 }
0047 }