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
- LineInfo.cs
- TextAnchor.cs
- ChtmlTextWriter.cs
- Page.cs
- DelegatingConfigHost.cs
- GeometryCombineModeValidation.cs
- PasswordBox.cs
- GridItemPattern.cs
- EditorPartChrome.cs
- CircleHotSpot.cs
- ImageKeyConverter.cs
- GenericRootAutomationPeer.cs
- PathSegmentCollection.cs
- VirtualizedItemProviderWrapper.cs
- Quaternion.cs
- Matrix.cs
- PropertyPathWorker.cs
- SafeSecurityHandles.cs
- PipelineDeploymentState.cs
- XPathException.cs
- TextTreeUndoUnit.cs
- KeyConverter.cs
- ApplicationTrust.cs
- UserControlParser.cs
- XmlMtomReader.cs
- PageThemeParser.cs
- SelectionUIHandler.cs
- SynthesizerStateChangedEventArgs.cs
- OdbcConnectionString.cs
- DynamicUpdateCommand.cs
- ParamArrayAttribute.cs
- GridViewRowEventArgs.cs
- SoapConverter.cs
- RunClient.cs
- FocusTracker.cs
- SafeNativeMethodsCLR.cs
- SingleStorage.cs
- DesignerUtils.cs
- OptionUsage.cs
- KernelTypeValidation.cs
- StructuredTypeInfo.cs
- AdCreatedEventArgs.cs
- LowerCaseStringConverter.cs
- GenericIdentity.cs
- Int32Rect.cs
- ProfileInfo.cs
- UIElementParaClient.cs
- BuildProviderInstallComponent.cs
- mda.cs
- Semaphore.cs
- Console.cs
- XmlTypeMapping.cs
- TouchFrameEventArgs.cs
- OdbcEnvironmentHandle.cs
- OleDbInfoMessageEvent.cs
- AnyAllSearchOperator.cs
- SoapServerMethod.cs
- Point4DValueSerializer.cs
- DbParameterCollection.cs
- ServiceOperationParameter.cs
- DLinqTableProvider.cs
- SafeNativeMethods.cs
- RequestContext.cs
- FontNamesConverter.cs
- Walker.cs
- BuildManagerHost.cs
- ObjectStorage.cs
- TagPrefixAttribute.cs
- _DomainName.cs
- TextSerializer.cs
- WebPartAddingEventArgs.cs
- ComponentRenameEvent.cs
- EventLogPermissionEntryCollection.cs
- SecurityContext.cs
- ValidationEventArgs.cs
- ThemeDirectoryCompiler.cs
- PngBitmapEncoder.cs
- XamlGridLengthSerializer.cs
- SoapAttributeAttribute.cs
- CompModSwitches.cs
- SchemaImporterExtension.cs
- CompareInfo.cs
- SoapInteropTypes.cs
- ExpressionBuilderContext.cs
- TcpProcessProtocolHandler.cs
- HelpKeywordAttribute.cs
- BuildProviderAppliesToAttribute.cs
- VirtualDirectoryMappingCollection.cs
- WebCategoryAttribute.cs
- WebService.cs
- LongAverageAggregationOperator.cs
- KeyEventArgs.cs
- ItemContainerPattern.cs
- DecimalStorage.cs
- PolyBezierSegment.cs
- WorkflowDefinitionDispenser.cs
- OptimalTextSource.cs
- PageParser.cs
- ProxyWebPartManager.cs
- Imaging.cs