Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / 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
- PromptBuilder.cs
- graph.cs
- RegistryExceptionHelper.cs
- Decoder.cs
- EncryptedXml.cs
- MailWebEventProvider.cs
- TableAdapterManagerMethodGenerator.cs
- GraphicsContainer.cs
- PopupRootAutomationPeer.cs
- Attachment.cs
- OutOfMemoryException.cs
- Context.cs
- Missing.cs
- AsymmetricSignatureDeformatter.cs
- DispatchChannelSink.cs
- SqlDataSourceCustomCommandPanel.cs
- MouseGestureValueSerializer.cs
- ListBindingHelper.cs
- EllipseGeometry.cs
- ExtensionDataReader.cs
- QilLiteral.cs
- RectangleGeometry.cs
- BinaryWriter.cs
- LogicalMethodInfo.cs
- UInt64Storage.cs
- TaskFormBase.cs
- SourceCollection.cs
- DocumentViewerBaseAutomationPeer.cs
- Point3DAnimationUsingKeyFrames.cs
- ImageAttributes.cs
- XmlDigitalSignatureProcessor.cs
- CommandHelpers.cs
- FormViewModeEventArgs.cs
- TemplateControlParser.cs
- Utilities.cs
- OperandQuery.cs
- CursorConverter.cs
- ServiceOperation.cs
- WebPartActionVerb.cs
- ContentTextAutomationPeer.cs
- WindowInteropHelper.cs
- ClientScriptManagerWrapper.cs
- HtmlInputButton.cs
- RijndaelManaged.cs
- ContextQuery.cs
- DataGridViewRowStateChangedEventArgs.cs
- ToolStripProgressBar.cs
- AttachedPropertyInfo.cs
- RenamedEventArgs.cs
- SelectionItemPattern.cs
- Activator.cs
- DecimalAnimationBase.cs
- CroppedBitmap.cs
- ExpressionBindingCollection.cs
- TimeoutTimer.cs
- SqlErrorCollection.cs
- DistinctQueryOperator.cs
- XmlConvert.cs
- TextChangedEventArgs.cs
- QilTargetType.cs
- ProfileSettings.cs
- DateTimeFormatInfoScanner.cs
- HttpServerVarsCollection.cs
- TraceLevelHelper.cs
- CaseExpr.cs
- ArrayConverter.cs
- EventDescriptor.cs
- CollectionContainer.cs
- OracleConnectionString.cs
- FrameworkContextData.cs
- ThreadExceptionDialog.cs
- InkCanvas.cs
- TextTreeInsertElementUndoUnit.cs
- Binding.cs
- XmlValueConverter.cs
- _ListenerRequestStream.cs
- EnumerableCollectionView.cs
- Convert.cs
- TaskFileService.cs
- TreeViewImageIndexConverter.cs
- EmbeddedMailObjectsCollection.cs
- XamlReaderConstants.cs
- Reference.cs
- TabControlEvent.cs
- XmlSchemaParticle.cs
- EventRouteFactory.cs
- DataGridViewColumnStateChangedEventArgs.cs
- InternalResources.cs
- DesignSurfaceManager.cs
- SqlGenericUtil.cs
- UnauthorizedWebPart.cs
- HtmlTitle.cs
- NavigationHelper.cs
- LinqDataSourceContextEventArgs.cs
- followingquery.cs
- TraceSection.cs
- SqlWebEventProvider.cs
- GiveFeedbackEvent.cs
- ConfigurationValues.cs
- LayoutExceptionEventArgs.cs