Code:
/ DotNET / DotNET / 8.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
- CustomAttributeSerializer.cs
- Visual.cs
- RemoteHelper.cs
- FormViewInsertEventArgs.cs
- DataGridViewAutoSizeModeEventArgs.cs
- XmlSchemaResource.cs
- FastPropertyAccessor.cs
- _NegotiateClient.cs
- HybridWebProxyFinder.cs
- SmtpReplyReader.cs
- Timeline.cs
- SecurityDescriptor.cs
- XmlEntityReference.cs
- Helpers.cs
- SystemUnicastIPAddressInformation.cs
- MSAAWinEventWrap.cs
- WebPartMenuStyle.cs
- Context.cs
- DayRenderEvent.cs
- InvokeGenerator.cs
- UserControlBuildProvider.cs
- EntityTypeEmitter.cs
- SqlCommandBuilder.cs
- UTF8Encoding.cs
- AutomationPropertyInfo.cs
- ReadWriteObjectLock.cs
- DbConnectionStringCommon.cs
- RequestCacheValidator.cs
- RecognizerStateChangedEventArgs.cs
- XmlExtensionFunction.cs
- ListViewItemMouseHoverEvent.cs
- ComplexTypeEmitter.cs
- ACE.cs
- SqlBinder.cs
- WCFBuildProvider.cs
- SafeHandles.cs
- ExpressionLexer.cs
- WinInetCache.cs
- FormatConvertedBitmap.cs
- WindowsPrincipal.cs
- DataGridLengthConverter.cs
- QueryResults.cs
- COM2ExtendedBrowsingHandler.cs
- DataContractAttribute.cs
- ExpressionsCollectionConverter.cs
- SequenceFullException.cs
- RtfToXamlReader.cs
- Resources.Designer.cs
- DbMetaDataCollectionNames.cs
- PersistenceTypeAttribute.cs
- FormClosingEvent.cs
- OutputCacheProfileCollection.cs
- SelectedDatesCollection.cs
- RuntimeIdentifierPropertyAttribute.cs
- XmlElementAttribute.cs
- WebControlParameterProxy.cs
- BrowserCapabilitiesCompiler.cs
- Int64AnimationBase.cs
- RelationshipEnd.cs
- DataGridViewLinkColumn.cs
- Button.cs
- DateTimeConverter2.cs
- SecurityTokenProvider.cs
- DynamicScriptObject.cs
- PtsContext.cs
- ByteStack.cs
- List.cs
- ListItem.cs
- GridViewItemAutomationPeer.cs
- DataObjectMethodAttribute.cs
- LabelAutomationPeer.cs
- CompositeControl.cs
- DataSourceControl.cs
- ListSurrogate.cs
- SessionPageStateSection.cs
- Transform3D.cs
- StructuralCache.cs
- EncryptedPackageFilter.cs
- JournalNavigationScope.cs
- ValidationRuleCollection.cs
- OutputCacheSection.cs
- EventWaitHandle.cs
- SrgsOneOf.cs
- ListViewDesigner.cs
- ServiceEndpointAssociationProvider.cs
- XamlWriter.cs
- LinqDataSourceValidationException.cs
- ManipulationCompletedEventArgs.cs
- BmpBitmapEncoder.cs
- SpeechEvent.cs
- TypeGeneratedEventArgs.cs
- GrammarBuilderBase.cs
- RotateTransform.cs
- TCEAdapterGenerator.cs
- AddingNewEventArgs.cs
- CodeActivityContext.cs
- UntrustedRecipientException.cs
- AsnEncodedData.cs
- TablePatternIdentifiers.cs
- BitSet.cs