Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Common / EntitySql / MethodExpr.cs / 2 / MethodExpr.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backup [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql { using System; using System.Globalization; using System.Collections; using System.Collections.Generic; using System.Data.Common.CommandTrees; using System.Diagnostics; ////// represents a method/function/aggregate function/type constructor expression /// internal sealed class MethodExpr : Expr { private Expr _leftExpr; private Identifier _methodIdentifier; private DistinctKind _distinctKind; private ExprList_args; private string _internalAggregateName; private DbExpression _dummyExpression = null; private ExprList _relationships; /// /// initializes method ast node /// /// /// /// /// internal MethodExpr( Expr left, Identifier methodId, DistinctKind distinctKind, ExprListargs ) { _leftExpr = left; _methodIdentifier = methodId; _distinctKind = distinctKind; _args = args; } /// /// intializes a method ast node /// /// /// /// /// /// internal MethodExpr(Expr left, Identifier methodId, DistinctKind distinctKind, ExprListargs, ExprList relationships) { _leftExpr = left; _methodIdentifier = methodId; _distinctKind = distinctKind; _args = args; _relationships = relationships; } /// /// left expression /// internal Expr LeftExpr { get { return _leftExpr; } } ////// method identifier /// internal Identifier MethodIdentifier { get { return _methodIdentifier; } } ////// method name /// internal string MethodName { get { return MethodIdentifier.Name; } } ////// returns a dotexpr with the entire prefix /// internal DotExpr MethodPrefixExpr { get { return new DotExpr(LeftExpr, MethodIdentifier); } } ////// defines if funtion has distict annotation /// internal DistinctKind DistinctKind { get { return _distinctKind; } } ////// argument list /// internal ExprListArgs { get { return _args; } } /// /// optional relationship list /// internal ExprListRelationships { get { return _relationships; } } /// /// Returns true if there are associated relationship expressions /// internal bool HasRelationships { get { return null != _relationships && _relationships.Count > 0; } } // // Aggregate helpers // ////// defines an internal name to be used as aggregate function /// used by semantic conversion /// internal string InternalAggregateName { get { return _internalAggregateName; } } ////// defines if a given function is aggregate /// used by semantic conversion /// internal bool WasResolved { get { return (null != _internalAggregateName); } } internal DbExpression DummyExpression { get { return _dummyExpression; } } internal void SetAggregateInfo( string internalAggregateName, DbExpression dummyExpr ) { Debug.Assert(internalAggregateName != null); Debug.Assert(dummyExpr != null); _internalAggregateName = internalAggregateName; _dummyExpression = dummyExpr; } internal void ResetDummyExpression() { _dummyExpression = null; } internal void ResetAggregateInfo() { _internalAggregateName = null; _dummyExpression = null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backup [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql { using System; using System.Globalization; using System.Collections; using System.Collections.Generic; using System.Data.Common.CommandTrees; using System.Diagnostics; ////// represents a method/function/aggregate function/type constructor expression /// internal sealed class MethodExpr : Expr { private Expr _leftExpr; private Identifier _methodIdentifier; private DistinctKind _distinctKind; private ExprList_args; private string _internalAggregateName; private DbExpression _dummyExpression = null; private ExprList _relationships; /// /// initializes method ast node /// /// /// /// /// internal MethodExpr( Expr left, Identifier methodId, DistinctKind distinctKind, ExprListargs ) { _leftExpr = left; _methodIdentifier = methodId; _distinctKind = distinctKind; _args = args; } /// /// intializes a method ast node /// /// /// /// /// /// internal MethodExpr(Expr left, Identifier methodId, DistinctKind distinctKind, ExprListargs, ExprList relationships) { _leftExpr = left; _methodIdentifier = methodId; _distinctKind = distinctKind; _args = args; _relationships = relationships; } /// /// left expression /// internal Expr LeftExpr { get { return _leftExpr; } } ////// method identifier /// internal Identifier MethodIdentifier { get { return _methodIdentifier; } } ////// method name /// internal string MethodName { get { return MethodIdentifier.Name; } } ////// returns a dotexpr with the entire prefix /// internal DotExpr MethodPrefixExpr { get { return new DotExpr(LeftExpr, MethodIdentifier); } } ////// defines if funtion has distict annotation /// internal DistinctKind DistinctKind { get { return _distinctKind; } } ////// argument list /// internal ExprListArgs { get { return _args; } } /// /// optional relationship list /// internal ExprListRelationships { get { return _relationships; } } /// /// Returns true if there are associated relationship expressions /// internal bool HasRelationships { get { return null != _relationships && _relationships.Count > 0; } } // // Aggregate helpers // ////// defines an internal name to be used as aggregate function /// used by semantic conversion /// internal string InternalAggregateName { get { return _internalAggregateName; } } ////// defines if a given function is aggregate /// used by semantic conversion /// internal bool WasResolved { get { return (null != _internalAggregateName); } } internal DbExpression DummyExpression { get { return _dummyExpression; } } internal void SetAggregateInfo( string internalAggregateName, DbExpression dummyExpr ) { Debug.Assert(internalAggregateName != null); Debug.Assert(dummyExpr != null); _internalAggregateName = internalAggregateName; _dummyExpression = dummyExpr; } internal void ResetDummyExpression() { _dummyExpression = null; } internal void ResetAggregateInfo() { _internalAggregateName = null; _dummyExpression = null; } } } // 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
- WebBaseEventKeyComparer.cs
- HtmlWindow.cs
- HttpWrapper.cs
- TraceEventCache.cs
- RSAOAEPKeyExchangeDeformatter.cs
- ListView.cs
- CreateDataSourceDialog.cs
- GridViewRowEventArgs.cs
- ExpandCollapseProviderWrapper.cs
- ArrangedElementCollection.cs
- OutputScopeManager.cs
- PolyQuadraticBezierSegment.cs
- MergePropertyDescriptor.cs
- MessageEncoderFactory.cs
- QueryInterceptorAttribute.cs
- PerformanceCounterManager.cs
- StrokeCollectionDefaultValueFactory.cs
- Translator.cs
- GridViewDeleteEventArgs.cs
- HashCodeCombiner.cs
- ConstraintConverter.cs
- CommandConverter.cs
- RegistrationServices.cs
- SequenceDesignerAccessibleObject.cs
- AuthenticateEventArgs.cs
- InkCanvasFeedbackAdorner.cs
- Resources.Designer.cs
- RoleServiceManager.cs
- ValueTypeIndexerReference.cs
- OleDbRowUpdatedEvent.cs
- InProcStateClientManager.cs
- EventMap.cs
- UserControl.cs
- BindingContext.cs
- UxThemeWrapper.cs
- Matrix.cs
- ItemContainerGenerator.cs
- Rfc2898DeriveBytes.cs
- MdiWindowListItemConverter.cs
- SqlDataSourceCustomCommandPanel.cs
- EdmSchemaAttribute.cs
- OleDbInfoMessageEvent.cs
- DoubleLinkList.cs
- InputBuffer.cs
- XmlSchemaSimpleContentRestriction.cs
- BindingEntityInfo.cs
- ListViewTableRow.cs
- CollectionViewGroupRoot.cs
- BackStopAuthenticationModule.cs
- RouteItem.cs
- PrintPreviewControl.cs
- ActivityExecutorOperation.cs
- ScalarType.cs
- PopupRootAutomationPeer.cs
- DataGrid.cs
- PreProcessInputEventArgs.cs
- StringStorage.cs
- Label.cs
- CancellableEnumerable.cs
- FlowDocumentPaginator.cs
- GridViewDesigner.cs
- DependencyObjectPropertyDescriptor.cs
- FileChangesMonitor.cs
- SynchronizedDispatch.cs
- RuleValidation.cs
- TreeNodeEventArgs.cs
- CultureTable.cs
- PrintDialogException.cs
- StrokeCollection2.cs
- InvokeFunc.cs
- SystemIPInterfaceStatistics.cs
- ToolStripItemGlyph.cs
- WindowsStartMenu.cs
- TypeSystemHelpers.cs
- Transform3DGroup.cs
- WebPartConnectionsConnectVerb.cs
- ContentHostHelper.cs
- TextRenderer.cs
- AnnotationResourceChangedEventArgs.cs
- ZipIOBlockManager.cs
- ClaimSet.cs
- Int16.cs
- QuinticEase.cs
- QueueTransferProtocol.cs
- WindowHideOrCloseTracker.cs
- EDesignUtil.cs
- AccessedThroughPropertyAttribute.cs
- TextSimpleMarkerProperties.cs
- AnnotationObservableCollection.cs
- Converter.cs
- CollectionViewSource.cs
- TextTreeObjectNode.cs
- IdentifierCollection.cs
- ThreadAbortException.cs
- DataGridBoundColumn.cs
- ObjectSpanRewriter.cs
- FreezableCollection.cs
- OleDbConnectionPoolGroupProviderInfo.cs
- TextBoxView.cs
- TransformCollection.cs