Imported Upstream version 4.0.0~alpha1

Former-commit-id: 806294f5ded97629b74c85c09952f2a74fe182d9
This commit is contained in:
Jo Shields
2015-04-07 09:35:12 +01:00
parent 283343f570
commit 3c1f479b9d
22469 changed files with 2931443 additions and 869343 deletions

View File

@@ -0,0 +1,49 @@
//------------------------------------------------------------------------------
// <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);
}
}
}