Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / fx / src / Xml / System / Xml / XPath / Internal / BooleanExpr.cs / 1 / BooleanExpr.cs
//------------------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// [....]
//-----------------------------------------------------------------------------
namespace MS.Internal.Xml.XPath {
using System;
using System.Xml;
using System.Xml.XPath;
using System.Xml.Xsl;
using System.Diagnostics;
using System.Globalization;
internal sealed class BooleanExpr : ValueQuery {
private Query opnd1;
private Query opnd2;
private bool isOr;
public BooleanExpr(Operator.Op op, Query opnd1, Query opnd2) {
Debug.Assert(op == Operator.Op.AND || op == Operator.Op.OR);
Debug.Assert(opnd1 != null && opnd2 != null);
if (opnd1.StaticType != XPathResultType.Boolean) {
opnd1 = new BooleanFunctions(Function.FunctionType.FuncBoolean, opnd1);
}
if (opnd2.StaticType != XPathResultType.Boolean) {
opnd2 = new BooleanFunctions(Function.FunctionType.FuncBoolean, opnd2);
}
this.opnd1 = opnd1;
this.opnd2 = opnd2;
isOr = (op == Operator.Op.OR);
}
private BooleanExpr(BooleanExpr other) : base(other) {
this.opnd1 = Clone(other.opnd1);
this.opnd2 = Clone(other.opnd2);
this.isOr = other.isOr;
}
public override void SetXsltContext(XsltContext context){
opnd1.SetXsltContext(context);
opnd2.SetXsltContext(context);
}
public override object Evaluate(XPathNodeIterator nodeIterator) {
object n1 = opnd1.Evaluate(nodeIterator);
if (((bool) n1) == isOr) {
return n1;
}
return opnd2.Evaluate(nodeIterator);
}
public override XPathNodeIterator Clone() { return new BooleanExpr(this); }
public override XPathResultType StaticType { get { return XPathResultType.Boolean; } }
public override void PrintQuery(XmlWriter w) {
w.WriteStartElement(this.GetType().Name);
w.WriteAttributeString("op", (isOr ? Operator.Op.OR : Operator.Op.AND).ToString());
opnd1.PrintQuery(w);
opnd2.PrintQuery(w);
w.WriteEndElement();
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- SiteMapPath.cs
- DataGridViewComboBoxColumn.cs
- ZipIOCentralDirectoryDigitalSignature.cs
- AdornedElementPlaceholder.cs
- DirectoryRootQuery.cs
- ImageClickEventArgs.cs
- SettingsPropertyCollection.cs
- Cursor.cs
- ProviderConnectionPoint.cs
- EncryptionUtility.cs
- BaseDataBoundControl.cs
- PeerNeighborManager.cs
- RelationshipDetailsRow.cs
- DirectionalLight.cs
- Scene3D.cs
- EndpointAddressProcessor.cs
- SqlDataAdapter.cs
- HelpProvider.cs
- ProcessModuleCollection.cs
- TrackingProfileDeserializationException.cs
- ServiceDescriptionImporter.cs
- DictionaryContent.cs
- ResourceProperty.cs
- TransactionScope.cs
- mediaeventargs.cs
- ProvidePropertyAttribute.cs
- NavigationExpr.cs
- FontFamily.cs
- XhtmlBasicPageAdapter.cs
- DiscoveryMessageSequenceGenerator.cs
- coordinatorscratchpad.cs
- XmlSiteMapProvider.cs
- FillRuleValidation.cs
- BaseTemplateBuildProvider.cs
- CleanUpVirtualizedItemEventArgs.cs
- DeleteStoreRequest.cs
- GlyphCache.cs
- IdentifierCollection.cs
- ProtectedConfigurationSection.cs
- FixedFindEngine.cs
- BitmapInitialize.cs
- AnnotationComponentChooser.cs
- SqlTriggerAttribute.cs
- CultureData.cs
- DataGridViewTextBoxColumn.cs
- DataRelationPropertyDescriptor.cs
- TextTreeUndoUnit.cs
- TrackingExtract.cs
- Metadata.cs
- AsyncStreamReader.cs
- PointConverter.cs
- DetailsViewPagerRow.cs
- XmlDataContract.cs
- AesCryptoServiceProvider.cs
- WsatServiceCertificate.cs
- DataListItem.cs
- SqlNodeAnnotation.cs
- UITypeEditors.cs
- WebPartHeaderCloseVerb.cs
- NullEntityWrapper.cs
- WindowsAuthenticationEventArgs.cs
- xdrvalidator.cs
- NumericUpDown.cs
- ObjectDataSourceChooseMethodsPanel.cs
- figurelength.cs
- UIInitializationException.cs
- AsyncContentLoadedEventArgs.cs
- ReferentialConstraint.cs
- ValueTable.cs
- EventProxy.cs
- PresentationSource.cs
- CodeTypeDeclaration.cs
- PointValueSerializer.cs
- TableHeaderCell.cs
- CompilerGlobalScopeAttribute.cs
- ExpressionVisitor.cs
- DataGridViewColumn.cs
- MessageEventSubscriptionService.cs
- DataGridViewCellPaintingEventArgs.cs
- EventLogInformation.cs
- ImageAnimator.cs
- StyleCollection.cs
- TableLayoutColumnStyleCollection.cs
- localization.cs
- EntityDataSourceState.cs
- SafeCancelMibChangeNotify.cs
- StringResourceManager.cs
- brushes.cs
- SuppressIldasmAttribute.cs
- TraceData.cs
- DocumentSequenceHighlightLayer.cs
- ButtonRenderer.cs
- AdornerHitTestResult.cs
- XmlConvert.cs
- activationcontext.cs
- ScrollPatternIdentifiers.cs
- CultureNotFoundException.cs
- TransactionInterop.cs
- ThicknessAnimation.cs
- MissingMemberException.cs