diff options
Diffstat (limited to 'src/tafgroup.cpp')
-rw-r--r-- | src/tafgroup.cpp | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/src/tafgroup.cpp b/src/tafgroup.cpp index 1837bd8..9440912 100644 --- a/src/tafgroup.cpp +++ b/src/tafgroup.cpp | |||
@@ -162,3 +162,40 @@ const Bu::FString &Bu::TafGroup::getProperty( const Bu::FString &sName, | |||
162 | } | 162 | } |
163 | } | 163 | } |
164 | 164 | ||
165 | const Bu::TafGroup *Bu::TafGroup::getChildByPath( | ||
166 | const Bu::FString &sPath ) const | ||
167 | { | ||
168 | return getChildByPath( sPath.split('/') ); | ||
169 | } | ||
170 | |||
171 | const Bu::TafGroup *Bu::TafGroup::getChildByPath( Bu::StrList lPath ) const | ||
172 | { | ||
173 | const Bu::TafGroup *cur = this; | ||
174 | |||
175 | for( Bu::StrList::const_iterator i = lPath.begin(); i; i++ ) | ||
176 | { | ||
177 | cur = cur->getChild( *i ); | ||
178 | } | ||
179 | |||
180 | return cur; | ||
181 | } | ||
182 | |||
183 | const Bu::FString &Bu::TafGroup::getByPath( const Bu::FString &sPath ) const | ||
184 | { | ||
185 | return getByPath( sPath.split('/') ); | ||
186 | } | ||
187 | |||
188 | const Bu::FString &Bu::TafGroup::getByPath( Bu::StrList lPath ) const | ||
189 | { | ||
190 | const Bu::TafGroup *cur = this; | ||
191 | |||
192 | for( Bu::StrList::const_iterator i = lPath.begin(); i; i++ ) | ||
193 | { | ||
194 | if( !(i+1) ) | ||
195 | break; | ||
196 | cur = cur->getChild( *i ); | ||
197 | } | ||
198 | |||
199 | return cur->getProperty( lPath.last() ); | ||
200 | } | ||
201 | |||