Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsFont.cs
- SamlDelegatingWriter.cs
- ReadOnlyDataSource.cs
- HiddenField.cs
- NamespaceMapping.cs
- BuildProvider.cs
- NameNode.cs
- StoreAnnotationsMap.cs
- _emptywebproxy.cs
- SqlPersonalizationProvider.cs
- ParameterSubsegment.cs
- SerialStream.cs
- ExpandedWrapper.cs
- log.cs
- Journaling.cs
- baseaxisquery.cs
- SByteConverter.cs
- HttpTransportElement.cs
- InputLanguageProfileNotifySink.cs
- AutomationIdentifier.cs
- uribuilder.cs
- ErrorFormatter.cs
- DockProviderWrapper.cs
- WebBrowser.cs
- SmiGettersStream.cs
- InvokeMethodActivity.cs
- UriSection.cs
- ObjectList.cs
- DataTableMapping.cs
- BoolExpr.cs
- Rotation3D.cs
- FixedHyperLink.cs
- FieldMetadata.cs
- ClickablePoint.cs
- WSFederationHttpSecurityMode.cs
- BooleanFunctions.cs
- SuppressIldasmAttribute.cs
- DetailsViewInsertedEventArgs.cs
- OleDbParameterCollection.cs
- HttpProfileBase.cs
- HttpResponseMessageProperty.cs
- SortDescriptionCollection.cs
- Gdiplus.cs
- EnterpriseServicesHelper.cs
- TextDecorations.cs
- CodeCommentStatement.cs
- BackgroundFormatInfo.cs
- FreezableCollection.cs
- MetabaseReader.cs
- DllNotFoundException.cs
- TreeWalkHelper.cs
- ItemCheckedEvent.cs
- DisableDpiAwarenessAttribute.cs
- TrackingQuery.cs
- DrawingImage.cs
- PeerApplicationLaunchInfo.cs
- ReadOnlyHierarchicalDataSourceView.cs
- NumberFormatter.cs
- RelatedEnd.cs
- TextDataBindingHandler.cs
- TextWriter.cs
- BamlStream.cs
- SQLInt16.cs
- XDRSchema.cs
- sqlmetadatafactory.cs
- Brush.cs
- VectorConverter.cs
- shaperfactoryquerycachekey.cs
- EndpointNotFoundException.cs
- DelegateSerializationHolder.cs
- XmlSchemaSimpleTypeUnion.cs
- WorkflowOperationInvoker.cs
- Soap.cs
- ObjectDataSourceSelectingEventArgs.cs
- ItemAutomationPeer.cs
- MultilineStringConverter.cs
- EditorZone.cs
- TextEditorCharacters.cs
- LogFlushAsyncResult.cs
- ImmutableObjectAttribute.cs
- NativeMethods.cs
- HandleCollector.cs
- EncoderReplacementFallback.cs
- WebPartEventArgs.cs
- AttributeData.cs
- PngBitmapDecoder.cs
- HttpCookieCollection.cs
- TransportContext.cs
- GeometryGroup.cs
- ChineseLunisolarCalendar.cs
- RectValueSerializer.cs
- Label.cs
- FontFaceLayoutInfo.cs
- ScaleTransform3D.cs
- TrackingProfile.cs
- SynchronizedInputAdaptor.cs
- ValueExpressions.cs
- ToolStripComboBox.cs
- SchemaTypeEmitter.cs
- ThreadStaticAttribute.cs