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
- LambdaCompiler.Address.cs
- BrowserCapabilitiesCodeGenerator.cs
- Int16.cs
- TabControl.cs
- OracleParameterBinding.cs
- DecoderReplacementFallback.cs
- EntityDataSourceDataSelection.cs
- BufferedGraphics.cs
- AuthenticationException.cs
- XmlRootAttribute.cs
- StickyNoteHelper.cs
- ScaleTransform.cs
- EventProviderBase.cs
- SiteMapSection.cs
- SQLChars.cs
- SelectionPatternIdentifiers.cs
- AutoGeneratedField.cs
- DummyDataSource.cs
- PhoneCall.cs
- OSFeature.cs
- Application.cs
- InputMethodStateChangeEventArgs.cs
- ControlType.cs
- RadialGradientBrush.cs
- InvokePattern.cs
- ReadOnlyDictionary.cs
- DbConnectionPoolOptions.cs
- DataMemberConverter.cs
- MarshalByRefObject.cs
- RadialGradientBrush.cs
- WebBrowserDocumentCompletedEventHandler.cs
- LinearGradientBrush.cs
- CapabilitiesPattern.cs
- isolationinterop.cs
- EntityEntry.cs
- SoapClientProtocol.cs
- StrokeCollection.cs
- WebServiceEnumData.cs
- RuleEngine.cs
- AutomationElementCollection.cs
- CompilerInfo.cs
- WebPermission.cs
- WinCategoryAttribute.cs
- ProfilePropertyNameValidator.cs
- CompareValidator.cs
- CustomAttributeSerializer.cs
- SettingsPropertyNotFoundException.cs
- FieldNameLookup.cs
- GridViewCancelEditEventArgs.cs
- HandleInitializationContext.cs
- SeverityFilter.cs
- EntityDataSourceColumn.cs
- Timer.cs
- CodeConstructor.cs
- HttpStreamXmlDictionaryWriter.cs
- SkewTransform.cs
- OletxTransactionManager.cs
- RefType.cs
- SafeThemeHandle.cs
- ClosureBinding.cs
- OleDbParameter.cs
- ServiceHttpModule.cs
- ApplicationInfo.cs
- ProviderCollection.cs
- XamlSerializerUtil.cs
- ContainerParagraph.cs
- SelectionProviderWrapper.cs
- AdornerPresentationContext.cs
- TextTreeTextNode.cs
- ControlPropertyNameConverter.cs
- EdmEntityTypeAttribute.cs
- Boolean.cs
- FormViewUpdateEventArgs.cs
- StringResourceManager.cs
- SoapParser.cs
- NonBatchDirectoryCompiler.cs
- Query.cs
- GPStream.cs
- MouseEvent.cs
- GeneralTransformGroup.cs
- XmlToDatasetMap.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- ButtonBaseAutomationPeer.cs
- TextEditorDragDrop.cs
- HttpContext.cs
- Rfc2898DeriveBytes.cs
- _ContextAwareResult.cs
- CompModSwitches.cs
- IDictionary.cs
- RootBrowserWindowAutomationPeer.cs
- SQLRoleProvider.cs
- SmiMetaDataProperty.cs
- DBSqlParserTableCollection.cs
- Context.cs
- FieldNameLookup.cs
- DrawingContextDrawingContextWalker.cs
- PointLight.cs
- WorkflowInstance.cs
- Decimal.cs
- ValuePattern.cs