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
- ListViewTableRow.cs
- FileSystemInfo.cs
- TextRangeEditLists.cs
- PropertyNames.cs
- RewritingSimplifier.cs
- Size.cs
- EmbeddedMailObject.cs
- WindowsListViewGroupSubsetLink.cs
- NextPreviousPagerField.cs
- CssClassPropertyAttribute.cs
- RequestCachePolicyConverter.cs
- UseLicense.cs
- XPathNodeList.cs
- NetworkStream.cs
- HashCodeCombiner.cs
- SortedDictionary.cs
- _SafeNetHandles.cs
- DesignerWidgets.cs
- SqlCommandSet.cs
- SafeTimerHandle.cs
- ExpressionEditorAttribute.cs
- RoleManagerEventArgs.cs
- MetadataFile.cs
- WebPartCatalogAddVerb.cs
- CountAggregationOperator.cs
- GatewayDefinition.cs
- ActivityCollectionMarkupSerializer.cs
- UserNameSecurityTokenParameters.cs
- PropertyGridView.cs
- XmlChoiceIdentifierAttribute.cs
- XmlQualifiedName.cs
- SqlParameter.cs
- DataGridLengthConverter.cs
- SpellCheck.cs
- SamlAuthenticationStatement.cs
- StrongNameUtility.cs
- KernelTypeValidation.cs
- RangeValuePattern.cs
- ImageMap.cs
- VideoDrawing.cs
- DomainUpDown.cs
- DesignerTransactionCloseEvent.cs
- XamlDesignerSerializationManager.cs
- SoapAttributeOverrides.cs
- ContentPathSegment.cs
- EUCJPEncoding.cs
- TransformationRules.cs
- SystemWebSectionGroup.cs
- Group.cs
- SimpleBitVector32.cs
- XmlIlVisitor.cs
- MaskedTextBox.cs
- CopyNodeSetAction.cs
- UniformGrid.cs
- IOThreadScheduler.cs
- ConstraintEnumerator.cs
- ColumnHeaderConverter.cs
- Monitor.cs
- FormView.cs
- EtwTrace.cs
- CultureInfoConverter.cs
- RegexCaptureCollection.cs
- UInt16Converter.cs
- ModifierKeysValueSerializer.cs
- TypeConverterHelper.cs
- Switch.cs
- PersistChildrenAttribute.cs
- ApplicationSecurityInfo.cs
- SplayTreeNode.cs
- ExpressionWriter.cs
- StringToken.cs
- ContentAlignmentEditor.cs
- ConfigurationFileMap.cs
- TabControlToolboxItem.cs
- RequestUriProcessor.cs
- ElapsedEventArgs.cs
- GroupBoxDesigner.cs
- BaseContextMenu.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- BeginEvent.cs
- EventMap.cs
- DesignerActionGlyph.cs
- ReadOnlyDictionary.cs
- WinCategoryAttribute.cs
- parserscommon.cs
- WinEventWrap.cs
- PasswordDeriveBytes.cs
- entityreference_tresulttype.cs
- HtmlImage.cs
- StateWorkerRequest.cs
- LeaseManager.cs
- HandledEventArgs.cs
- Code.cs
- BuildResultCache.cs
- GridViewRowPresenter.cs
- KeyConstraint.cs
- ThrowHelper.cs
- NativeMethods.cs
- HtmlTableCellCollection.cs
- AlignmentXValidation.cs