Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DataEntity / System / Data / Common / EntitySql / MethodExpr.cs / 1 / 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
- XmlSchemaComplexContent.cs
- RegexStringValidatorAttribute.cs
- SqlStatistics.cs
- TypeGeneratedEventArgs.cs
- HtmlTextViewAdapter.cs
- Calendar.cs
- TreeNodeBindingCollection.cs
- Point4DConverter.cs
- AudioFormatConverter.cs
- SpellerStatusTable.cs
- AncestorChangedEventArgs.cs
- FixedTextView.cs
- EmbeddedObject.cs
- DataGridViewRowEventArgs.cs
- BypassElement.cs
- Enlistment.cs
- Barrier.cs
- XPathDescendantIterator.cs
- DbProviderSpecificTypePropertyAttribute.cs
- ProviderBase.cs
- ObsoleteAttribute.cs
- SourceLineInfo.cs
- ConfigurationSettings.cs
- MachineSettingsSection.cs
- SQLSingle.cs
- XmlSchemaAnnotated.cs
- ProcessStartInfo.cs
- LingerOption.cs
- TimeSpanMinutesOrInfiniteConverter.cs
- RelationalExpressions.cs
- MinimizableAttributeTypeConverter.cs
- SchemaInfo.cs
- SID.cs
- MimeTypeMapper.cs
- ConfigXmlWhitespace.cs
- ValueUtilsSmi.cs
- NetStream.cs
- PrivacyNoticeBindingElement.cs
- MatrixTransform.cs
- PlanCompilerUtil.cs
- ConfigurationElementProperty.cs
- LassoSelectionBehavior.cs
- Stack.cs
- CertificateManager.cs
- GZipStream.cs
- DateTimeOffset.cs
- RbTree.cs
- InvalidFilterCriteriaException.cs
- uribuilder.cs
- XhtmlBasicFormAdapter.cs
- References.cs
- TraceUtility.cs
- GlobalDataBindingHandler.cs
- TripleDESCryptoServiceProvider.cs
- ClientOptions.cs
- TextSpanModifier.cs
- PathBox.cs
- SchemaImporter.cs
- BinaryReader.cs
- ScrollProperties.cs
- CodeStatementCollection.cs
- FormattedText.cs
- ForeignKeyConstraint.cs
- VirtualPathUtility.cs
- HashCryptoHandle.cs
- DropTarget.cs
- ToolboxComponentsCreatedEventArgs.cs
- HostedImpersonationContext.cs
- DefaultProxySection.cs
- ClientProxyGenerator.cs
- DateTimeStorage.cs
- MultitargetUtil.cs
- EdmComplexTypeAttribute.cs
- WebPartTracker.cs
- Rss20FeedFormatter.cs
- Size3D.cs
- RawKeyboardInputReport.cs
- SecurityElement.cs
- SessionStateItemCollection.cs
- KeyTimeConverter.cs
- TabItem.cs
- DbFunctionCommandTree.cs
- TextUtf8RawTextWriter.cs
- SourceItem.cs
- InheritanceContextChangedEventManager.cs
- PropertyValue.cs
- XmlSerializerOperationFormatter.cs
- WebHttpDispatchOperationSelector.cs
- XmlIlVisitor.cs
- ByteFacetDescriptionElement.cs
- Underline.cs
- DataFormats.cs
- Msec.cs
- WindowsListViewGroupHelper.cs
- TimeStampChecker.cs
- InputProcessorProfilesLoader.cs
- DbMetaDataFactory.cs
- StringOutput.cs
- AnnotationComponentChooser.cs
- ConfigurationPropertyAttribute.cs