Jo Shields 3c1f479b9d Imported Upstream version 4.0.0~alpha1
Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
2015-04-07 09:35:12 +01:00

50 lines
1.6 KiB
C#

//------------------------------------------------------------------------------
// <copyright file="BaseTreeIterator.cs" company="Microsoft">
// Copyright (c) Microsoft Corporation. All rights reserved.
// </copyright>
// <owner current="true" primary="true">[....]</owner>
// <owner current="true" primary="false">[....]</owner>
//------------------------------------------------------------------------------
namespace System.Xml {
// Iterates over non-attribute nodes
internal abstract class BaseTreeIterator {
protected DataSetMapper mapper;
internal BaseTreeIterator( DataSetMapper mapper ) {
this.mapper = mapper;
}
internal abstract void Reset();
internal abstract XmlNode CurrentNode { get; }
internal abstract bool Next();
internal abstract bool NextRight();
internal bool NextRowElement() {
while ( Next() ) {
if ( OnRowElement() )
return true;
}
return false;
}
internal bool NextRightRowElement() {
if ( NextRight() ) {
if ( OnRowElement() )
return true;
return NextRowElement();
}
return false;
}
// Returns true if the current node is on a row element (head of a region)
internal bool OnRowElement() {
XmlBoundElement be = CurrentNode as XmlBoundElement;
return (be != null) && (be.Row != null);
}
}
}