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
- MatrixUtil.cs
- DecoderExceptionFallback.cs
- QilReplaceVisitor.cs
- QilChoice.cs
- MultiBindingExpression.cs
- FigureParaClient.cs
- IsolatedStorageFilePermission.cs
- EditorOptionAttribute.cs
- SqlDataSourceDesigner.cs
- ForeignKeyFactory.cs
- SHA256.cs
- CellIdBoolean.cs
- Pts.cs
- XmlSchemaSet.cs
- ExpressionVisitorHelpers.cs
- WebPartDescription.cs
- ProcessInputEventArgs.cs
- BinaryFormatterWriter.cs
- BorderSidesEditor.cs
- sqlser.cs
- sitestring.cs
- CreateUserWizard.cs
- SqlDataSourceView.cs
- ToolStripRenderer.cs
- ToolStripDropDownMenu.cs
- DragStartedEventArgs.cs
- AttachInfo.cs
- PrivateFontCollection.cs
- ConstraintManager.cs
- CodeAttachEventStatement.cs
- ProfileService.cs
- DirectoryInfo.cs
- DataGridViewCellErrorTextNeededEventArgs.cs
- ValueConversionAttribute.cs
- CookieParameter.cs
- SmtpCommands.cs
- SmiContextFactory.cs
- XmlEnumAttribute.cs
- DataTableClearEvent.cs
- ExpressionsCollectionEditor.cs
- ToolStripContextMenu.cs
- SoundPlayerAction.cs
- QilDataSource.cs
- KeyedCollection.cs
- ValidatedControlConverter.cs
- ObjectHelper.cs
- DeviceSpecific.cs
- TypeUtil.cs
- VBCodeProvider.cs
- TreeViewDesigner.cs
- RootAction.cs
- ContentOnlyMessage.cs
- ProfileGroupSettingsCollection.cs
- IsolationInterop.cs
- SRDisplayNameAttribute.cs
- ConnectionPointCookie.cs
- PEFileReader.cs
- InvokePattern.cs
- EdmItemCollection.cs
- LocalizableAttribute.cs
- RelationshipType.cs
- MultiBinding.cs
- DecoratedNameAttribute.cs
- Stylus.cs
- xmlsaver.cs
- IItemContainerGenerator.cs
- GenericEnumConverter.cs
- NullReferenceException.cs
- BezierSegment.cs
- RequestCachingSection.cs
- DefaultSection.cs
- TraceUtility.cs
- PropertyValidationContext.cs
- XmlNamespaceMappingCollection.cs
- SharedPerformanceCounter.cs
- ContextDataSourceView.cs
- StateMachineWorkflowDesigner.cs
- TrackBar.cs
- RegexInterpreter.cs
- CellCreator.cs
- TriggerActionCollection.cs
- IdentityValidationException.cs
- WebPartConnectionsEventArgs.cs
- SplayTreeNode.cs
- smtppermission.cs
- ViewPort3D.cs
- DefaultBindingPropertyAttribute.cs
- XmlToDatasetMap.cs
- TableLayoutSettings.cs
- SQLBytes.cs
- XmlBinaryReader.cs
- RootBuilder.cs
- XmlAutoDetectWriter.cs
- GetCertificateRequest.cs
- BitmapEffectDrawing.cs
- TableLayout.cs
- PropertyGridView.cs
- KeyMatchBuilder.cs
- ProxyAttribute.cs
- HuffCodec.cs