| 591 | } |
| 592 | |
| 593 | StringResolverPtr Element::createStringResolver(const string& geom) const |
| 594 | { |
| 595 | StringResolverPtr resolver = StringResolver::create(); |
| 596 | |
| 597 | // Compute file and geom prefixes as this scope. |
| 598 | resolver->setFilePrefix(getActiveFilePrefix()); |
| 599 | resolver->setGeomPrefix(getActiveGeomPrefix()); |
| 600 | |
| 601 | // If a geometry name is specified, then apply it to the filename map. |
| 602 | if (!geom.empty()) |
| 603 | { |
| 604 | for (GeomInfoPtr geomInfo : getDocument()->getGeomInfos()) |
| 605 | { |
| 606 | if (!geomStringsMatch(geom, geomInfo->getActiveGeom())) |
| 607 | continue; |
| 608 | for (TokenPtr token : geomInfo->getTokens()) |
| 609 | { |
| 610 | string key = "<" + token->getName() + ">"; |
| 611 | string value = token->getResolvedValueString(); |
| 612 | resolver->setFilenameSubstitution(key, value); |
| 613 | } |
| 614 | } |
| 615 | } |
| 616 | |
| 617 | // Add in token substitutions |
| 618 | resolver->addTokenSubstitutions(getSelf()); |
| 619 | |
| 620 | return resolver; |
| 621 | } |
| 622 | |
| 623 | string Element::asString() const |
| 624 | { |
no test coverage detected