Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / 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
- ArrayList.cs
- RegisterResponseInfo.cs
- UrlAuthorizationModule.cs
- SharedUtils.cs
- GradientBrush.cs
- MethodImplAttribute.cs
- EditorPartChrome.cs
- ClientScriptManagerWrapper.cs
- CheckBoxList.cs
- RoleGroupCollection.cs
- RegexCaptureCollection.cs
- EdmProperty.cs
- SymbolTable.cs
- SmtpNegotiateAuthenticationModule.cs
- ArgumentElement.cs
- AttributeCollection.cs
- PageVisual.cs
- BitmapPalettes.cs
- DetailsViewModeEventArgs.cs
- AttachedPropertyInfo.cs
- DispatcherBuilder.cs
- SearchForVirtualItemEventArgs.cs
- GPPOINT.cs
- WinEventWrap.cs
- ElementsClipboardData.cs
- PersonalizationEntry.cs
- BamlVersionHeader.cs
- DesignerForm.cs
- CodeChecksumPragma.cs
- EditBehavior.cs
- Image.cs
- XmlSerializationGeneratedCode.cs
- TextHidden.cs
- CommonXSendMessage.cs
- SQLSingleStorage.cs
- DataGridTable.cs
- X509Certificate2.cs
- Compiler.cs
- StrokeRenderer.cs
- DBBindings.cs
- PathBox.cs
- TimeSpanValidator.cs
- ProfileSettingsCollection.cs
- TextModifier.cs
- ColumnCollection.cs
- SiteMapDataSource.cs
- HwndAppCommandInputProvider.cs
- ServiceTimeoutsElement.cs
- TraceHelpers.cs
- FormViewRow.cs
- figurelength.cs
- ParentQuery.cs
- ArraySortHelper.cs
- PropertyOrder.cs
- OleDbConnection.cs
- DetailsViewRow.cs
- OrderingQueryOperator.cs
- EncodingNLS.cs
- ArgumentNullException.cs
- DataListAutoFormat.cs
- CatalogPartChrome.cs
- RtfToXamlReader.cs
- DynamicResourceExtension.cs
- DataGridViewLayoutData.cs
- WriteFileContext.cs
- ComponentChangedEvent.cs
- BooleanProjectedSlot.cs
- MetadataCache.cs
- PersonalizableAttribute.cs
- Rules.cs
- AddressingProperty.cs
- SrgsDocument.cs
- XPathSingletonIterator.cs
- NaturalLanguageHyphenator.cs
- MulticastNotSupportedException.cs
- AddInController.cs
- ProfileBuildProvider.cs
- DataServiceRequestArgs.cs
- NameSpaceExtractor.cs
- ColorConvertedBitmapExtension.cs
- GraphicsPathIterator.cs
- DrawingVisualDrawingContext.cs
- PropertyReference.cs
- WebReferencesBuildProvider.cs
- XsdBuilder.cs
- AsyncResult.cs
- TablePattern.cs
- WebAdminConfigurationHelper.cs
- FixedSOMImage.cs
- StringBuilder.cs
- SqlGatherConsumedAliases.cs
- CachedBitmap.cs
- PropertyMetadata.cs
- wmiprovider.cs
- ParameterModifier.cs
- FixedFlowMap.cs
- UnmanagedMarshal.cs
- BaseCodeDomTreeGenerator.cs
- SafeHandles.cs
- LinkLabelLinkClickedEvent.cs