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
- XmlSchemaAppInfo.cs
- CommandCollectionEditor.cs
- FormClosingEvent.cs
- SqlDataAdapter.cs
- FormatterConverter.cs
- Missing.cs
- Decorator.cs
- InvokeHandlers.cs
- FixedSOMTableRow.cs
- CodeChecksumPragma.cs
- ServiceModelStringsVersion1.cs
- BufferAllocator.cs
- ServerProtocol.cs
- JavaScriptSerializer.cs
- AdCreatedEventArgs.cs
- UdpContractFilterBehavior.cs
- UInt16.cs
- ConditionalAttribute.cs
- SiteMapSection.cs
- IODescriptionAttribute.cs
- ControlCollection.cs
- JournalEntryListConverter.cs
- AuthenticationManager.cs
- isolationinterop.cs
- SystemPens.cs
- MeasurementDCInfo.cs
- DesignerTransactionCloseEvent.cs
- RectAnimationBase.cs
- UniqueEventHelper.cs
- ComponentDispatcher.cs
- HighlightComponent.cs
- File.cs
- DynamicRendererThreadManager.cs
- ExtendLockCommand.cs
- FreezableCollection.cs
- SendingRequestEventArgs.cs
- ChangeNode.cs
- Pkcs7Signer.cs
- WebServiceResponse.cs
- Rule.cs
- Attributes.cs
- WindowsRichEditRange.cs
- HtmlControlAdapter.cs
- HttpCapabilitiesEvaluator.cs
- ChineseLunisolarCalendar.cs
- SessionEndingEventArgs.cs
- UniformGrid.cs
- SqlException.cs
- ContextMarshalException.cs
- FileNotFoundException.cs
- ParentQuery.cs
- SByteConverter.cs
- AuthenticationSection.cs
- PeerCollaboration.cs
- XmlDataSourceView.cs
- DesignColumnCollection.cs
- MembershipSection.cs
- BackgroundFormatInfo.cs
- ComPersistableTypeElement.cs
- EventLogWatcher.cs
- Form.cs
- WsrmMessageInfo.cs
- AuthorizationRule.cs
- NegotiationTokenAuthenticatorState.cs
- HostExecutionContextManager.cs
- LineServicesCallbacks.cs
- DrawingBrush.cs
- BitmapFrameEncode.cs
- MailMessage.cs
- FormsAuthenticationCredentials.cs
- DataRow.cs
- SimpleTypeResolver.cs
- RequestQueryParser.cs
- HybridDictionary.cs
- DrawTreeNodeEventArgs.cs
- StrokeNodeOperations.cs
- EntityCommandDefinition.cs
- HttpAsyncResult.cs
- ApplicationProxyInternal.cs
- InitializingNewItemEventArgs.cs
- SspiHelper.cs
- ClientScriptManager.cs
- EventLog.cs
- IISUnsafeMethods.cs
- LogAppendAsyncResult.cs
- XamlFigureLengthSerializer.cs
- UInt16Converter.cs
- DbConnectionStringCommon.cs
- VolatileResourceManager.cs
- ReflectionPermission.cs
- ClientTargetCollection.cs
- Logging.cs
- RTTypeWrapper.cs
- DataGridViewAddColumnDialog.cs
- ScriptResourceInfo.cs
- TextTreeUndo.cs
- Viewport3DVisual.cs
- ReadOnlyCollectionBuilder.cs
- SafeNativeMethodsOther.cs
- WebBrowser.cs