Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / 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. // //[....] //----------------------------------------------------------------------------- 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- DesignerTransactionCloseEvent.cs
- SessionParameter.cs
- SpellerStatusTable.cs
- FreeFormDragDropManager.cs
- TraceSwitch.cs
- TextEditorParagraphs.cs
- XMLSchema.cs
- DesignTimeData.cs
- TextSchema.cs
- ParseChildrenAsPropertiesAttribute.cs
- DataGridViewBand.cs
- ClockGroup.cs
- XsltOutput.cs
- DataTablePropertyDescriptor.cs
- HashAlgorithm.cs
- SafeUserTokenHandle.cs
- Size3D.cs
- ServiceBuildProvider.cs
- PluggableProtocol.cs
- UnmanagedMemoryStreamWrapper.cs
- WebPartZoneBase.cs
- StringArrayConverter.cs
- WindowsClaimSet.cs
- Queue.cs
- HostSecurityManager.cs
- ComponentEvent.cs
- EdmSchemaError.cs
- Grammar.cs
- AddInActivator.cs
- ResponseBodyWriter.cs
- LeafCellTreeNode.cs
- PolyQuadraticBezierSegment.cs
- DataMisalignedException.cs
- CellTreeNodeVisitors.cs
- ReadOnlyCollection.cs
- DbUpdateCommandTree.cs
- View.cs
- HMACSHA256.cs
- SortExpressionBuilder.cs
- HttpApplicationFactory.cs
- ClipboardProcessor.cs
- ServiceModelSecurityTokenRequirement.cs
- SiteMapDataSource.cs
- ListViewDeleteEventArgs.cs
- Size.cs
- PersonalizationStateInfoCollection.cs
- DrawListViewSubItemEventArgs.cs
- XmlSchemaComplexContent.cs
- SafeCryptoHandles.cs
- XslException.cs
- TabRenderer.cs
- CodeArrayCreateExpression.cs
- PublisherIdentityPermission.cs
- Attributes.cs
- ISAPIApplicationHost.cs
- SqlDataSourceCache.cs
- DataGridLinkButton.cs
- formatstringdialog.cs
- XmlNotation.cs
- DynamicUpdateCommand.cs
- ResXBuildProvider.cs
- OdbcConnectionPoolProviderInfo.cs
- DrawingImage.cs
- EventWaitHandle.cs
- UriParserTemplates.cs
- CodeThrowExceptionStatement.cs
- DataGridColumnCollection.cs
- WsatAdminException.cs
- LocationUpdates.cs
- ListViewTableRow.cs
- AuthorizationSection.cs
- FigureHelper.cs
- IriParsingElement.cs
- BatchServiceHost.cs
- CachedBitmap.cs
- DataGridViewMethods.cs
- ProcessModuleCollection.cs
- MasterPageBuildProvider.cs
- ToolStripButton.cs
- ToolboxItemFilterAttribute.cs
- IncrementalHitTester.cs
- CryptoKeySecurity.cs
- XmlSchemaException.cs
- SQLStringStorage.cs
- DictionaryManager.cs
- IgnoreDeviceFilterElementCollection.cs
- FileSystemEventArgs.cs
- UInt64Storage.cs
- DirectionalLight.cs
- XPathQilFactory.cs
- InfoCardX509Validator.cs
- HttpDateParse.cs
- XmlBinaryReader.cs
- NativeMethods.cs
- TextModifierScope.cs
- BridgeDataRecord.cs
- NameScope.cs
- DataGridState.cs
- _ConnectionGroup.cs
- SourceInterpreter.cs