Xamarin Public Jenkins (auto-signing) e79aa3c0ed Imported Upstream version 4.6.0.125
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
2016-08-03 10:59:49 +00: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);
}
}
}