Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DLinq / Dlinq / SqlClient / Common / SqlNodeTypeOperators.cs / 1305376 / SqlNodeTypeOperators.cs
using System; using System.Collections.Generic; using System.Text; using System.Diagnostics.CodeAnalysis; namespace System.Data.Linq.SqlClient { internal static class SqlNodeTypeOperators { ////// Determines whether the given unary operator node type returns a value that /// is predicate. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification="These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")] internal static bool IsPredicateUnaryOperator(this SqlNodeType nodeType) { switch (nodeType) { case SqlNodeType.Not: case SqlNodeType.Not2V: case SqlNodeType.IsNull: case SqlNodeType.IsNotNull: return true; case SqlNodeType.Negate: case SqlNodeType.BitNot: case SqlNodeType.Count: case SqlNodeType.LongCount: case SqlNodeType.Max: case SqlNodeType.Min: case SqlNodeType.Sum: case SqlNodeType.Avg: case SqlNodeType.Stddev: case SqlNodeType.Convert: case SqlNodeType.ValueOf: case SqlNodeType.OuterJoinedValue: case SqlNodeType.ClrLength: return false; default: throw Error.UnexpectedNode(nodeType); } } ////// Determines whether the given unary operator expects a predicate as input. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification="These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")] internal static bool IsUnaryOperatorExpectingPredicateOperand(this SqlNodeType nodeType) { switch (nodeType) { case SqlNodeType.Not: case SqlNodeType.Not2V: return true; case SqlNodeType.IsNull: case SqlNodeType.IsNotNull: case SqlNodeType.Negate: case SqlNodeType.BitNot: case SqlNodeType.Count: case SqlNodeType.LongCount: case SqlNodeType.Max: case SqlNodeType.Min: case SqlNodeType.Sum: case SqlNodeType.Avg: case SqlNodeType.Stddev: case SqlNodeType.Convert: case SqlNodeType.ValueOf: case SqlNodeType.OuterJoinedValue: case SqlNodeType.ClrLength: return false; default: throw Error.UnexpectedNode(nodeType); } } ////// Determines whether the given binary operator node type returns a value that /// is a predicate boolean. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification="These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")] internal static bool IsPredicateBinaryOperator(this SqlNodeType nodeType) { switch (nodeType) { case SqlNodeType.GE: case SqlNodeType.GT: case SqlNodeType.LE: case SqlNodeType.LT: case SqlNodeType.EQ: case SqlNodeType.NE: case SqlNodeType.EQ2V: case SqlNodeType.NE2V: case SqlNodeType.And: case SqlNodeType.Or: return true; case SqlNodeType.Add: case SqlNodeType.Sub: case SqlNodeType.Mul: case SqlNodeType.Div: case SqlNodeType.Mod: case SqlNodeType.BitAnd: case SqlNodeType.BitOr: case SqlNodeType.BitXor: case SqlNodeType.Concat: case SqlNodeType.Coalesce: return false; default: throw Error.UnexpectedNode(nodeType); } } ////// Determines whether this operator is a binary comparison operator (i.e. >, =>, ==, etc) /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification = "These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")] internal static bool IsComparisonOperator(this SqlNodeType nodeType) { switch (nodeType) { case SqlNodeType.GE: case SqlNodeType.GT: case SqlNodeType.LE: case SqlNodeType.LT: case SqlNodeType.EQ: case SqlNodeType.NE: case SqlNodeType.EQ2V: case SqlNodeType.NE2V: return true; case SqlNodeType.And: case SqlNodeType.Or: case SqlNodeType.Add: case SqlNodeType.Sub: case SqlNodeType.Mul: case SqlNodeType.Div: case SqlNodeType.Mod: case SqlNodeType.BitAnd: case SqlNodeType.BitOr: case SqlNodeType.BitXor: case SqlNodeType.Concat: case SqlNodeType.Coalesce: return false; default: throw Error.UnexpectedNode(nodeType); } } ////// Determines whether the given binary operator node type returns a value that /// is a predicate boolean. /// [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Justification="These issues are related to our use of if-then and case statements for node types, which adds to the complexity count however when reviewed they are easy to navigate and understand.")] internal static bool IsBinaryOperatorExpectingPredicateOperands(this SqlNodeType nodeType) { switch (nodeType) { case SqlNodeType.And: case SqlNodeType.Or: return true; case SqlNodeType.EQ: case SqlNodeType.EQ2V: case SqlNodeType.GE: case SqlNodeType.GT: case SqlNodeType.LE: case SqlNodeType.LT: case SqlNodeType.NE: case SqlNodeType.NE2V: case SqlNodeType.Add: case SqlNodeType.Sub: case SqlNodeType.Mul: case SqlNodeType.Div: case SqlNodeType.Mod: case SqlNodeType.BitAnd: case SqlNodeType.BitOr: case SqlNodeType.BitXor: case SqlNodeType.Concat: case SqlNodeType.Coalesce: return false; default: throw Error.UnexpectedNode(nodeType); } } ////// Determines whether the given node requires support on the client for evaluation. /// For example, LINK nodes may be delay-executed only when the user requests the result. /// internal static bool IsClientAidedExpression(this SqlExpression expr) { switch (expr.NodeType) { case SqlNodeType.Link: case SqlNodeType.Element: case SqlNodeType.Multiset: case SqlNodeType.ClientQuery: case SqlNodeType.TypeCase: case SqlNodeType.New: return true; default: return false; }; } } } // 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
- configsystem.cs
- GridItemCollection.cs
- CheckBoxFlatAdapter.cs
- SafeEventLogWriteHandle.cs
- OutputCacheProfile.cs
- QilName.cs
- SimpleExpression.cs
- Variable.cs
- Pkcs9Attribute.cs
- TreeNode.cs
- MembershipUser.cs
- RawStylusInputCustomData.cs
- SocketElement.cs
- CodeAttachEventStatement.cs
- RuntimeConfigurationRecord.cs
- TextDecorations.cs
- ParenthesizePropertyNameAttribute.cs
- __FastResourceComparer.cs
- PowerModeChangedEventArgs.cs
- UnsafeNativeMethodsCLR.cs
- XmlIlGenerator.cs
- SingleAnimationUsingKeyFrames.cs
- SecurityUtils.cs
- TextComposition.cs
- ReferenceConverter.cs
- WindowsFormsHelpers.cs
- FaultBookmark.cs
- ElementUtil.cs
- ReadOnlyCollection.cs
- CommandHelper.cs
- Activator.cs
- wgx_sdk_version.cs
- DynamicDocumentPaginator.cs
- WebPart.cs
- RC2.cs
- PersistenceMetadataNamespace.cs
- TableFieldsEditor.cs
- SamlAttribute.cs
- CompareInfo.cs
- ThaiBuddhistCalendar.cs
- QilName.cs
- Decorator.cs
- UniformGrid.cs
- IntegerValidatorAttribute.cs
- XPathDocumentBuilder.cs
- TableStyle.cs
- EncryptedReference.cs
- CoTaskMemHandle.cs
- UpdatePanelTriggerCollection.cs
- BamlBinaryWriter.cs
- SecurityHelper.cs
- VSWCFServiceContractGenerator.cs
- ButtonAutomationPeer.cs
- GetWinFXPath.cs
- AutoCompleteStringCollection.cs
- DefaultWorkflowLoaderService.cs
- Input.cs
- TrustSection.cs
- CallInfo.cs
- BaseCollection.cs
- ShaderRenderModeValidation.cs
- OverflowException.cs
- ListDictionaryInternal.cs
- X509Extension.cs
- ShaderEffect.cs
- RSAOAEPKeyExchangeDeformatter.cs
- SqlVersion.cs
- TimestampInformation.cs
- CssClassPropertyAttribute.cs
- XmlCountingReader.cs
- WizardStepBase.cs
- XmlSchemaGroupRef.cs
- WebPartZone.cs
- AddressingVersion.cs
- StrongName.cs
- MultipleViewProviderWrapper.cs
- FrameworkElement.cs
- WindowsRebar.cs
- BehaviorEditorPart.cs
- DBConcurrencyException.cs
- ProcessProtocolHandler.cs
- PlatformCulture.cs
- UserControlBuildProvider.cs
- SystemKeyConverter.cs
- LinqDataSourceUpdateEventArgs.cs
- ExpressionEditorAttribute.cs
- Convert.cs
- SamlConditions.cs
- CornerRadiusConverter.cs
- TagPrefixAttribute.cs
- TiffBitmapEncoder.cs
- GregorianCalendarHelper.cs
- StringUtil.cs
- ServicesUtilities.cs
- ResourceWriter.cs
- ApplicationInterop.cs
- LinkLabel.cs
- ReadOnlyDictionary.cs
- Slider.cs
- UIElement3D.cs