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
- SystemTcpConnection.cs
- DocumentsTrace.cs
- FileLogRecordEnumerator.cs
- MasterPageCodeDomTreeGenerator.cs
- DeviceOverridableAttribute.cs
- ByteAnimationBase.cs
- sqlstateclientmanager.cs
- WindowsServiceElement.cs
- CompositeControl.cs
- ComponentChangingEvent.cs
- XmlSchemaChoice.cs
- ColorConverter.cs
- Int16Storage.cs
- Int32.cs
- NativeRecognizer.cs
- LocalizedNameDescriptionPair.cs
- TemplateBuilder.cs
- XamlVector3DCollectionSerializer.cs
- XamlRtfConverter.cs
- TableRow.cs
- Viewport3DVisual.cs
- Int32Rect.cs
- DataContractSerializerSection.cs
- Comparer.cs
- IntSecurity.cs
- NonVisualControlAttribute.cs
- SectionVisual.cs
- MimeFormatExtensions.cs
- ScrollChrome.cs
- ApplicationProxyInternal.cs
- TransactionalPackage.cs
- AutoSizeToolBoxItem.cs
- DispatchChannelSink.cs
- ButtonBase.cs
- XhtmlBasicLiteralTextAdapter.cs
- Timer.cs
- ClientTargetSection.cs
- InstanceKeyNotReadyException.cs
- FontStyle.cs
- XhtmlConformanceSection.cs
- DispatcherFrame.cs
- ScrollBar.cs
- HttpCachePolicyElement.cs
- NavigationWindow.cs
- CodeValidator.cs
- WsrmTraceRecord.cs
- TextEditorLists.cs
- PrivilegedConfigurationManager.cs
- ViewCellRelation.cs
- PropertyExpression.cs
- EncodingStreamWrapper.cs
- DataFormat.cs
- XmlDownloadManager.cs
- CellParagraph.cs
- InitializerFacet.cs
- OptimizedTemplateContentHelper.cs
- XmlAggregates.cs
- DataSvcMapFileSerializer.cs
- CustomErrorCollection.cs
- OdbcConnectionOpen.cs
- XmlNamespaceDeclarationsAttribute.cs
- LinkedResourceCollection.cs
- KeyConverter.cs
- BaseDataBoundControl.cs
- ObjectSet.cs
- UnsafeNativeMethodsPenimc.cs
- DocumentViewer.cs
- UnsignedPublishLicense.cs
- ClientApiGenerator.cs
- TextContainer.cs
- XmlWrappingReader.cs
- ImageInfo.cs
- HtmlHead.cs
- OleDbRowUpdatingEvent.cs
- SecurityCredentialsManager.cs
- ParsedAttributeCollection.cs
- NonParentingControl.cs
- TableParaClient.cs
- BufferedReadStream.cs
- AsyncStreamReader.cs
- Triangle.cs
- ConfigurationValues.cs
- FloaterParaClient.cs
- DataSetSchema.cs
- Int64KeyFrameCollection.cs
- ToolStripRenderEventArgs.cs
- Point4D.cs
- ContainerUIElement3D.cs
- CellLabel.cs
- MatcherBuilder.cs
- ColorAnimationBase.cs
- PerspectiveCamera.cs
- NativeCppClassAttribute.cs
- EncryptedXml.cs
- EditorPart.cs
- Visual3D.cs
- DbProviderSpecificTypePropertyAttribute.cs
- CompiledAction.cs
- CategoryGridEntry.cs
- FixedSOMPageConstructor.cs