| 3321 | } |
| 3322 | |
| 3323 | SqlFileTimeSeriesQueryVector SqlFile_Impl::expandEnvironment(const SqlFileTimeSeriesQuery& query) { |
| 3324 | SqlFileTimeSeriesQueryVector result; |
| 3325 | |
| 3326 | EnvironmentIdentifier envId; |
| 3327 | StringVector envNames = availableEnvPeriods(); |
| 3328 | StringVector keepers; |
| 3329 | if (query.environment()) { |
| 3330 | envId = query.environment().get(); |
| 3331 | if (envId.type()) { |
| 3332 | EnvironmentType envType = envId.type().get(); |
| 3333 | // specified by type--get all matching environment names |
| 3334 | for (const std::string& envName : envNames) { |
| 3335 | OptionalEnvironmentType oEnvType = environmentType(envName); |
| 3336 | if (oEnvType && (*oEnvType == envType)) { |
| 3337 | keepers.push_back(envName); |
| 3338 | } |
| 3339 | } |
| 3340 | } else { |
| 3341 | std::string envName = envId.name().get(); |
| 3342 | // check validity of name |
| 3343 | auto it = std::find_if(envNames.cbegin(), envNames.cend(), [&envName](const auto& e) { return istringEqual(envName, e); }); |
| 3344 | if (it != envNames.end()) { |
| 3345 | keepers.push_back(*it); |
| 3346 | } |
| 3347 | } |
| 3348 | } else { |
| 3349 | // keep all envNames |
| 3350 | keepers = envNames; |
| 3351 | } |
| 3352 | |
| 3353 | // initialize result queries |
| 3354 | SqlFileTimeSeriesQuery wQuery(query); |
| 3355 | for (const std::string& envName : keepers) { |
| 3356 | envId = EnvironmentIdentifier(envName); |
| 3357 | wQuery.setEnvironment(envId); |
| 3358 | result.push_back(wQuery); |
| 3359 | } |
| 3360 | |
| 3361 | // check result queries for consistency |
| 3362 | mf_makeConsistent(result); |
| 3363 | |
| 3364 | return result; |
| 3365 | } |
| 3366 | |
| 3367 | SqlFileTimeSeriesQueryVector SqlFile_Impl::expandReportingFrequency(const SqlFileTimeSeriesQuery& query) { |
| 3368 | SqlFileTimeSeriesQueryVector result; |
nothing calls this directly
no test coverage detected