Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Common / EntitySql / AST / DotExpr.cs / 1305376 / DotExpr.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql.AST { using System; using System.Globalization; using System.Collections; using System.Collections.Generic; using System.Diagnostics; ////// Represents dotExpr: expr.Identifier /// internal sealed class DotExpr : Node { private readonly Node _leftExpr; private readonly Identifier _identifier; private bool? _isMultipartIdentifierComputed; private string[] _names; ////// initializes /// internal DotExpr(Node leftExpr, Identifier id) { _leftExpr = leftExpr; _identifier = id; } ////// For the following expression: "a.b.c.d", Left returns "a.b.c". /// internal Node Left { get { return _leftExpr; } } ////// For the following expression: "a.b.c.d", Identifier returns "d". /// internal Identifier Identifier { get { return _identifier; } } ////// Returns true if all parts of this expression are identifiers like in "a.b.c", /// false for expressions like "FunctionCall().a.b.c". /// internal bool IsMultipartIdentifier(out string[] names) { if (_isMultipartIdentifierComputed.HasValue) { names = _names; return _isMultipartIdentifierComputed.Value; } _names = null; Identifier leftIdenitifier = _leftExpr as Identifier; if (leftIdenitifier != null) { _names = new string[] { leftIdenitifier.Name, _identifier.Name }; } DotExpr leftDotExpr = _leftExpr as DotExpr; string[] leftNames; if (leftDotExpr != null && leftDotExpr.IsMultipartIdentifier(out leftNames)) { _names = new string[leftNames.Length + 1]; leftNames.CopyTo(_names, 0); _names[_names.Length - 1] = _identifier.Name; } Debug.Assert(_names == null || _names.Length > 0, "_names must be null or non-empty"); _isMultipartIdentifierComputed = _names != null; names = _names; return _isMultipartIdentifierComputed.Value; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- namespace System.Data.Common.EntitySql.AST { using System; using System.Globalization; using System.Collections; using System.Collections.Generic; using System.Diagnostics; ////// Represents dotExpr: expr.Identifier /// internal sealed class DotExpr : Node { private readonly Node _leftExpr; private readonly Identifier _identifier; private bool? _isMultipartIdentifierComputed; private string[] _names; ////// initializes /// internal DotExpr(Node leftExpr, Identifier id) { _leftExpr = leftExpr; _identifier = id; } ////// For the following expression: "a.b.c.d", Left returns "a.b.c". /// internal Node Left { get { return _leftExpr; } } ////// For the following expression: "a.b.c.d", Identifier returns "d". /// internal Identifier Identifier { get { return _identifier; } } ////// Returns true if all parts of this expression are identifiers like in "a.b.c", /// false for expressions like "FunctionCall().a.b.c". /// internal bool IsMultipartIdentifier(out string[] names) { if (_isMultipartIdentifierComputed.HasValue) { names = _names; return _isMultipartIdentifierComputed.Value; } _names = null; Identifier leftIdenitifier = _leftExpr as Identifier; if (leftIdenitifier != null) { _names = new string[] { leftIdenitifier.Name, _identifier.Name }; } DotExpr leftDotExpr = _leftExpr as DotExpr; string[] leftNames; if (leftDotExpr != null && leftDotExpr.IsMultipartIdentifier(out leftNames)) { _names = new string[leftNames.Length + 1]; leftNames.CopyTo(_names, 0); _names[_names.Length - 1] = _identifier.Name; } Debug.Assert(_names == null || _names.Length > 0, "_names must be null or non-empty"); _isMultipartIdentifierComputed = _names != null; names = _names; return _isMultipartIdentifierComputed.Value; } } } // 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
- DesignerForm.cs
- __TransparentProxy.cs
- CodeLinePragma.cs
- CheckBox.cs
- StylusCollection.cs
- AlgoModule.cs
- LinearKeyFrames.cs
- ObjectAssociationEndMapping.cs
- Quaternion.cs
- EventsTab.cs
- Quaternion.cs
- TextTabProperties.cs
- ExpressionConverter.cs
- RadioButton.cs
- LocalizableAttribute.cs
- LeaseManager.cs
- ConnectionPointCookie.cs
- GlobalDataBindingHandler.cs
- VariableQuery.cs
- BindingContext.cs
- TemplateControlBuildProvider.cs
- SocketInformation.cs
- DateBoldEvent.cs
- AdPostCacheSubstitution.cs
- CaseExpr.cs
- formatter.cs
- DataFormats.cs
- SystemEvents.cs
- complextypematerializer.cs
- Interlocked.cs
- EdmValidator.cs
- ControlPropertyNameConverter.cs
- ObjectQueryProvider.cs
- PropertyEntry.cs
- DataSourceControlBuilder.cs
- ProcessModuleCollection.cs
- TextEditorTyping.cs
- MenuItemCollection.cs
- CurrencyWrapper.cs
- DuplexChannelFactory.cs
- Item.cs
- SiteMapDataSourceDesigner.cs
- EmptyQuery.cs
- FusionWrap.cs
- HiddenField.cs
- IndexedString.cs
- Adorner.cs
- ComponentManagerBroker.cs
- Crc32Helper.cs
- DesignerGenericWebPart.cs
- MobileContainerDesigner.cs
- TaskCanceledException.cs
- GeneralTransform2DTo3DTo2D.cs
- CDSsyncETWBCLProvider.cs
- DataControlButton.cs
- ControlCachePolicy.cs
- ListViewCommandEventArgs.cs
- AppSettingsExpressionBuilder.cs
- FullTextBreakpoint.cs
- SpeechRecognizer.cs
- TextOptions.cs
- EpmSourceTree.cs
- ExpressionsCollectionEditor.cs
- BodyGlyph.cs
- HttpRequestCacheValidator.cs
- EnumValidator.cs
- AlphabeticalEnumConverter.cs
- DocumentViewer.cs
- CheckStoreFileValidityRequest.cs
- PropertyInfoSet.cs
- ComplexObject.cs
- InkCanvas.cs
- FormatConvertedBitmap.cs
- WizardDesigner.cs
- XamlSerializerUtil.cs
- OverlappedAsyncResult.cs
- WebPartUtil.cs
- PointLight.cs
- SystemTcpStatistics.cs
- SoapServerMethod.cs
- GeneralTransform2DTo3D.cs
- InlineUIContainer.cs
- EventLogPermissionAttribute.cs
- TreeBuilderXamlTranslator.cs
- ColumnBinding.cs
- NullableDecimalMinMaxAggregationOperator.cs
- CommentEmitter.cs
- ObjectParameter.cs
- WebPartEditorCancelVerb.cs
- BrowserCapabilitiesCompiler.cs
- DoubleAnimationClockResource.cs
- Activity.cs
- MetadataPropertyvalue.cs
- SelectionEditor.cs
- CacheSection.cs
- _SslState.cs
- TraceUtility.cs
- _OverlappedAsyncResult.cs
- SqlGatherConsumedAliases.cs
- StackBuilderSink.cs