boost::optional<EndUseCategoryType> CalibrationUtilityBill::meterEndUseCategory() const { boost::optional<Attribute> attribute = m_attribute.findChildByName("meterEndUseCategory"); if (attribute){ BOOST_ASSERT(attribute->valueType() == AttributeValueType::String); return EndUseCategoryType(attribute->valueAsString()); } return boost::none; }
double EndUses::getEndUseByFuelType(const EndUseFuelType& fuelType) const { double result = 0; std::map<int, std::string> endUseCategoryTypes = EndUseCategoryType::getNames(); std::map<int, std::string>::const_iterator endUseCategoryTypesIt = endUseCategoryTypes.begin(); std::map<int, std::string>::const_iterator endUseCategoryTypesItEnd = endUseCategoryTypes.end(); for( ; endUseCategoryTypesIt != endUseCategoryTypesItEnd; ++endUseCategoryTypesIt){ result += getEndUse(fuelType, EndUseCategoryType(endUseCategoryTypesIt->second)); } return result; }
std::vector<EndUseCategoryType> EndUses::categories() { std::vector<EndUseCategoryType> result; std::map<int, std::string> endUseCategoryTypes = EndUseCategoryType::getNames(); std::map<int, std::string>::const_iterator endUseCategoryTypesIt = endUseCategoryTypes.begin(); std::map<int, std::string>::const_iterator endUseCategoryTypesItEnd = endUseCategoryTypes.end(); for( ; endUseCategoryTypesIt != endUseCategoryTypesItEnd; ++endUseCategoryTypesIt){ result.push_back(EndUseCategoryType(endUseCategoryTypesIt->first)); } return result; }