MCPcopy Create free account
hub / github.com/NatLabRockies/OpenStudio / expandEnvironment

Method expandEnvironment

src/utilities/sql/SqlFile_Impl.cpp:3323–3365  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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;

Callers

nothing calls this directly

Calls 10

istringEqualFunction · 0.85
environmentMethod · 0.80
cbeginMethod · 0.80
cendMethod · 0.80
setEnvironmentMethod · 0.80
getMethod · 0.45
typeMethod · 0.45
push_backMethod · 0.45
nameMethod · 0.45
endMethod · 0.45

Tested by

no test coverage detected