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,
ExprList args )
{
_leftExpr = left;
_methodIdentifier = methodId;
_distinctKind = distinctKind;
_args = args;
}
///
/// intializes a method ast node
///
///
///
///
///
///
internal MethodExpr(Expr left,
Identifier methodId,
DistinctKind distinctKind,
ExprList args,
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 ExprList Args
{
get { return _args; }
}
///
/// optional relationship list
///
internal ExprList Relationships
{
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,
ExprList args )
{
_leftExpr = left;
_methodIdentifier = methodId;
_distinctKind = distinctKind;
_args = args;
}
///
/// intializes a method ast node
///
///
///
///
///
///
internal MethodExpr(Expr left,
Identifier methodId,
DistinctKind distinctKind,
ExprList args,
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 ExprList Args
{
get { return _args; }
}
///
/// optional relationship list
///
internal ExprList Relationships
{
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
- PermissionListSet.cs
- RegexNode.cs
- EntityViewGenerationConstants.cs
- ToolStripActionList.cs
- OptimizerPatterns.cs
- TileBrush.cs
- DefaultAssemblyResolver.cs
- DataListCommandEventArgs.cs
- Trace.cs
- SafeNativeMethods.cs
- DocumentPageHost.cs
- ConnectionConsumerAttribute.cs
- InvalidEnumArgumentException.cs
- CombinedGeometry.cs
- TextClipboardData.cs
- KeyboardDevice.cs
- WebControlsSection.cs
- PersistenceContext.cs
- SaveRecipientRequest.cs
- CustomSignedXml.cs
- SqlCacheDependencySection.cs
- SafeNativeMethods.cs
- Descriptor.cs
- AliasedExpr.cs
- SvcMapFileLoader.cs
- DateTimeSerializationSection.cs
- Hashtable.cs
- OrderByBuilder.cs
- ClientSettingsStore.cs
- DecoderFallback.cs
- StringKeyFrameCollection.cs
- LogicalMethodInfo.cs
- LayoutSettings.cs
- ControlPropertyNameConverter.cs
- XPathDocumentBuilder.cs
- CompressedStack.cs
- ValidatingReaderNodeData.cs
- MultipleViewPattern.cs
- Popup.cs
- DependencyPropertyHelper.cs
- ExternalException.cs
- CollectionViewGroupRoot.cs
- HwndTarget.cs
- ObjectQueryProvider.cs
- FastEncoder.cs
- PackageRelationshipSelector.cs
- UnsafeNativeMethods.cs
- FloaterParaClient.cs
- PropertiesTab.cs
- TextPointerBase.cs
- LongTypeConverter.cs
- WindowInteropHelper.cs
- DelegatingTypeDescriptionProvider.cs
- TailPinnedEventArgs.cs
- TextRunCacheImp.cs
- WebPartCancelEventArgs.cs
- SmiConnection.cs
- _ScatterGatherBuffers.cs
- EntityTypeEmitter.cs
- SQLBoolean.cs
- StyleSelector.cs
- RectIndependentAnimationStorage.cs
- ConversionValidationRule.cs
- WhiteSpaceTrimStringConverter.cs
- WindowsAuthenticationModule.cs
- ProgressBarAutomationPeer.cs
- ToolZone.cs
- RegisteredHiddenField.cs
- ClickablePoint.cs
- WebConfigurationHostFileChange.cs
- DiscoveryDocumentSerializer.cs
- UndoEngine.cs
- WebPartConnection.cs
- OdbcHandle.cs
- DataTableMappingCollection.cs
- DelegatingConfigHost.cs
- Mutex.cs
- DateTimeParse.cs
- DataGridColumnHeaderCollection.cs
- GridLengthConverter.cs
- EndEvent.cs
- EntityTemplateFactory.cs
- CharEntityEncoderFallback.cs
- ListenerElementsCollection.cs
- ContextStaticAttribute.cs
- DispatcherOperation.cs
- MsdtcClusterUtils.cs
- TextCompositionManager.cs
- XPathScanner.cs
- SqlVisitor.cs
- SessionStateContainer.cs
- XmlAnyElementAttributes.cs
- SiteOfOriginContainer.cs
- SqlDataSourceCommandParser.cs
- RemotingService.cs
- GPPOINT.cs
- _DisconnectOverlappedAsyncResult.cs
- GridViewDeleteEventArgs.cs
- MessageBox.cs
- TouchFrameEventArgs.cs