Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ MoveNext()

IteratorResult System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator.MoveNext ( XPathNavigator input)
inline

Definition at line 35 of file XPathPrecedingMergeIterator.cs.

36 {
37 switch (_state)
38 {
39 case IteratorState.NeedCandidateCurrent:
40 if (input == null)
41 {
42 return IteratorResult.NoMoreNodes;
43 }
44 _navCurrent = XmlQueryRuntime.SyncToNavigator(_navCurrent, input);
45 _state = IteratorState.HaveCandidateCurrent;
46 return IteratorResult.NeedInputNode;
47 case IteratorState.HaveCandidateCurrent:
48 if (input == null)
49 {
50 _state = IteratorState.HaveCurrentNoNext;
51 }
52 else
53 {
55 {
56 _navCurrent = XmlQueryRuntime.SyncToNavigator(_navCurrent, input);
57 return IteratorResult.NeedInputNode;
58 }
59 _navNext = XmlQueryRuntime.SyncToNavigator(_navNext, input);
60 _state = IteratorState.HaveCurrentHaveNext;
61 }
63 break;
64 }
65 if (!_navStack.IsEmpty)
66 {
67 do
68 {
70 {
71 return IteratorResult.HaveCurrentNode;
72 }
74 }
75 while (!_navStack.IsEmpty);
76 }
77 if (_state == IteratorState.HaveCurrentNoNext)
78 {
79 _state = IteratorState.NeedCandidateCurrent;
80 return IteratorResult.NoMoreNodes;
81 }
82 _navCurrent = XmlQueryRuntime.SyncToNavigator(_navCurrent, _navNext);
83 _state = IteratorState.HaveCandidateCurrent;
84 return IteratorResult.HaveCurrentNode;
85 }
bool MoveTo(XPathNavigator other)
virtual XmlNodeOrder ComparePosition(XPathNavigator? nav)
bool MoveToFollowing(XPathNavigator navigator, XPathNavigator navigatorEnd)

References System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator._filter, System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator._navCurrent, System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator._navNext, System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator._navStack, System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator._state, System.Xml.XPath.XPathNavigator.ComparePosition(), System.input, System.Xml.Xsl.Runtime.XmlNavigatorStack.IsEmpty, System.Xml.XPath.XPathNavigator.MoveTo(), System.Xml.Xsl.Runtime.XmlNavigatorFilter.MoveToFollowing(), System.Xml.Xsl.Runtime.XmlNavigatorStack.Peek(), System.Xml.Xsl.Runtime.XmlNavigatorStack.Pop(), System.Xml.Xsl.Runtime.XPathPrecedingMergeIterator.PushAncestors(), and System.Xml.Xsl.Runtime.XmlQueryRuntime.SyncToNavigator().