(t iterator)
| 239 | } |
| 240 | |
| 241 | func (a *attributeQuery) Select(t iterator) NodeNavigator { |
| 242 | for { |
| 243 | if a.iterator == nil { |
| 244 | node := a.Input.Select(t) |
| 245 | if node == nil { |
| 246 | return nil |
| 247 | } |
| 248 | node = node.Copy() |
| 249 | a.iterator = func() NodeNavigator { |
| 250 | for { |
| 251 | onAttr := node.MoveToNextAttribute() |
| 252 | if !onAttr { |
| 253 | return nil |
| 254 | } |
| 255 | if a.Predicate(node) { |
| 256 | return node |
| 257 | } |
| 258 | } |
| 259 | } |
| 260 | } |
| 261 | |
| 262 | if node := a.iterator(); node != nil { |
| 263 | return node |
| 264 | } |
| 265 | a.iterator = nil |
| 266 | } |
| 267 | } |
| 268 | |
| 269 | func (a *attributeQuery) Evaluate(t iterator) interface{} { |
| 270 | a.Input.Evaluate(t) |
nothing calls this directly
no test coverage detected