Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / whidbey / NetFXspW7 / 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
- DataGridViewRowHeightInfoPushedEventArgs.cs
- Part.cs
- ModifyActivitiesPropertyDescriptor.cs
- GlobalizationAssembly.cs
- SqlStatistics.cs
- NativeMethods.cs
- StaticExtensionConverter.cs
- RecordBuilder.cs
- UpDownBaseDesigner.cs
- RangeValueProviderWrapper.cs
- MimeParameter.cs
- TextElementEnumerator.cs
- CheckBoxBaseAdapter.cs
- Utils.cs
- Brush.cs
- HScrollBar.cs
- SqlDependency.cs
- DetailsViewPagerRow.cs
- ToolStripPanelRenderEventArgs.cs
- SQLDoubleStorage.cs
- figurelength.cs
- ComboBoxRenderer.cs
- HttpWriter.cs
- FlowDocumentFormatter.cs
- Subtree.cs
- Bits.cs
- SHA256.cs
- CheckedListBox.cs
- Cell.cs
- TemplateColumn.cs
- EventData.cs
- AsymmetricKeyExchangeDeformatter.cs
- XmlComment.cs
- GenerateDerivedKeyRequest.cs
- SoapIncludeAttribute.cs
- GroupQuery.cs
- PropertyInformationCollection.cs
- FixedBufferAttribute.cs
- CodeTypeOfExpression.cs
- KnownTypesHelper.cs
- TransportContext.cs
- OdbcConnectionStringbuilder.cs
- EnvironmentPermission.cs
- XamlVector3DCollectionSerializer.cs
- OpCopier.cs
- DataGridViewCellValueEventArgs.cs
- HebrewNumber.cs
- ConnectionManagementElement.cs
- StreamSecurityUpgradeInitiator.cs
- FontSource.cs
- AutomationElement.cs
- ColorConvertedBitmapExtension.cs
- CompModSwitches.cs
- DataSourceSelectArguments.cs
- SafeSecurityHandles.cs
- NewArrayExpression.cs
- OracleString.cs
- ComplexObject.cs
- OletxTransactionHeader.cs
- RootBrowserWindowProxy.cs
- ValuePattern.cs
- WaitHandleCannotBeOpenedException.cs
- EntityDataSourceConfigureObjectContextPanel.cs
- assertwrapper.cs
- BoundField.cs
- ExpressionVisitor.cs
- DrawingCollection.cs
- ClosableStream.cs
- LiteralControl.cs
- StyleBamlTreeBuilder.cs
- Normalization.cs
- FileAuthorizationModule.cs
- WinInet.cs
- AdapterSwitches.cs
- RotateTransform3D.cs
- SystemUdpStatistics.cs
- RequestSecurityTokenResponse.cs
- WebBrowserEvent.cs
- WasAdminWrapper.cs
- SelectedGridItemChangedEvent.cs
- BaseAsyncResult.cs
- ClientRuntimeConfig.cs
- ControlLocalizer.cs
- BuilderInfo.cs
- Pair.cs
- Polyline.cs
- XmlAtomErrorReader.cs
- DefaultTraceListener.cs
- ZoneMembershipCondition.cs
- FontStyleConverter.cs
- IgnoreFlushAndCloseStream.cs
- CodeMethodReturnStatement.cs
- VisualBrush.cs
- BooleanAnimationUsingKeyFrames.cs
- QueryOptionExpression.cs
- LayoutEngine.cs
- MeshGeometry3D.cs
- BatchParser.cs
- TransformerInfoCollection.cs
- PhysicalOps.cs