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 / SqlClient / SqlGen / JoinSymbol.cs / 1 / JoinSymbol.cs
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Data.SqlClient;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees;
namespace System.Data.SqlClient.SqlGen
{
///
/// A Join symbol is a special kind of Symbol.
/// It has to carry additional information
///
/// - ColumnList for the list of columns in the select clause if this
/// symbol represents a sql select statement. This is set by
.
/// - ExtentList is the list of extents in the select clause.
/// - FlattenedExtentList - if the Join has multiple extents flattened at the
/// top level, we need this information to ensure that extent aliases are renamed
/// correctly in
/// - NameToExtent has all the extents in ExtentList as a dictionary.
/// This is used by
to flatten
/// record accesses.
/// - IsNestedJoin - is used to determine whether a JoinSymbol is an
/// ordinary join symbol, or one that has a corresponding SqlSelectStatement.
///
///
/// All the lists are set exactly once, and then used for lookups/enumerated.
///
internal sealed class JoinSymbol : Symbol
{
private List columnList;
internal List ColumnList
{
get
{
if (null == columnList)
{
columnList = new List();
}
return columnList;
}
set { columnList = value; }
}
private List extentList;
internal List ExtentList
{
get { return extentList; }
}
private List flattenedExtentList;
internal List FlattenedExtentList
{
get
{
if (null == flattenedExtentList)
{
flattenedExtentList = new List();
}
return flattenedExtentList;
}
set { flattenedExtentList = value; }
}
private Dictionary nameToExtent;
internal Dictionary NameToExtent
{
get { return nameToExtent; }
}
private bool isNestedJoin;
internal bool IsNestedJoin
{
get { return isNestedJoin; }
set { isNestedJoin = value; }
}
public JoinSymbol(string name, TypeUsage type, List extents)
: base(name, type)
{
extentList = new List(extents.Count);
nameToExtent = new Dictionary(extents.Count, StringComparer.OrdinalIgnoreCase);
foreach (Symbol symbol in extents)
{
this.nameToExtent[symbol.Name] = symbol;
this.ExtentList.Add(symbol);
}
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
//----------------------------------------------------------------------
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// @owner [....], [....]
//---------------------------------------------------------------------
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Data.SqlClient;
using System.Data.Metadata.Edm;
using System.Data.Common.CommandTrees;
namespace System.Data.SqlClient.SqlGen
{
///
/// A Join symbol is a special kind of Symbol.
/// It has to carry additional information
///
/// - ColumnList for the list of columns in the select clause if this
/// symbol represents a sql select statement. This is set by
.
/// - ExtentList is the list of extents in the select clause.
/// - FlattenedExtentList - if the Join has multiple extents flattened at the
/// top level, we need this information to ensure that extent aliases are renamed
/// correctly in
/// - NameToExtent has all the extents in ExtentList as a dictionary.
/// This is used by
to flatten
/// record accesses.
/// - IsNestedJoin - is used to determine whether a JoinSymbol is an
/// ordinary join symbol, or one that has a corresponding SqlSelectStatement.
///
///
/// All the lists are set exactly once, and then used for lookups/enumerated.
///
internal sealed class JoinSymbol : Symbol
{
private List columnList;
internal List ColumnList
{
get
{
if (null == columnList)
{
columnList = new List();
}
return columnList;
}
set { columnList = value; }
}
private List extentList;
internal List ExtentList
{
get { return extentList; }
}
private List flattenedExtentList;
internal List FlattenedExtentList
{
get
{
if (null == flattenedExtentList)
{
flattenedExtentList = new List();
}
return flattenedExtentList;
}
set { flattenedExtentList = value; }
}
private Dictionary nameToExtent;
internal Dictionary NameToExtent
{
get { return nameToExtent; }
}
private bool isNestedJoin;
internal bool IsNestedJoin
{
get { return isNestedJoin; }
set { isNestedJoin = value; }
}
public JoinSymbol(string name, TypeUsage type, List extents)
: base(name, type)
{
extentList = new List(extents.Count);
nameToExtent = new Dictionary(extents.Count, StringComparer.OrdinalIgnoreCase);
foreach (Symbol symbol in extents)
{
this.nameToExtent[symbol.Name] = symbol;
this.ExtentList.Add(symbol);
}
}
}
}
// 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
- HandledEventArgs.cs
- DesignerCommandSet.cs
- NumberSubstitution.cs
- XNameConverter.cs
- GlyphCache.cs
- EncoderParameter.cs
- ExpressionBindingCollection.cs
- ApplicationInfo.cs
- RegexReplacement.cs
- SqlDataSourceRefreshSchemaForm.cs
- CriticalFinalizerObject.cs
- TypeDependencyAttribute.cs
- SID.cs
- NegotiationTokenProvider.cs
- StrongNameHelpers.cs
- FontInfo.cs
- System.Data.OracleClient_BID.cs
- GridViewSortEventArgs.cs
- CapabilitiesRule.cs
- EntryIndex.cs
- Dictionary.cs
- UIPermission.cs
- NamespaceExpr.cs
- SqlComparer.cs
- RowCache.cs
- smtppermission.cs
- ReachVisualSerializerAsync.cs
- OleDbConnectionFactory.cs
- DataError.cs
- DesignerActionItem.cs
- objectresult_tresulttype.cs
- QuaternionRotation3D.cs
- XmlBaseReader.cs
- OrderedHashRepartitionEnumerator.cs
- EndpointDispatcherTable.cs
- SpecularMaterial.cs
- SqlClientWrapperSmiStreamChars.cs
- RichTextBox.cs
- Parameter.cs
- ServiceObjectContainer.cs
- Color.cs
- Enum.cs
- Button.cs
- BridgeDataReader.cs
- TypeForwardedToAttribute.cs
- OptimalTextSource.cs
- EncryptRequest.cs
- GridViewSortEventArgs.cs
- Currency.cs
- EmptyEnumerator.cs
- RepeaterItemCollection.cs
- Group.cs
- ConnectionsZoneAutoFormat.cs
- StandardToolWindows.cs
- RangeEnumerable.cs
- ValidationEventArgs.cs
- UrlAuthorizationModule.cs
- ManagementExtension.cs
- Polyline.cs
- DetailsViewPageEventArgs.cs
- KnownIds.cs
- ZoomPercentageConverter.cs
- NameTable.cs
- SocketConnection.cs
- WriterOutput.cs
- mda.cs
- XamlReaderHelper.cs
- Polygon.cs
- InfoCardArgumentException.cs
- HyperLinkField.cs
- DispatcherFrame.cs
- _AcceptOverlappedAsyncResult.cs
- SiteMapNodeCollection.cs
- GridItemCollection.cs
- ObjectDataSourceMethodEventArgs.cs
- DataMemberListEditor.cs
- StrongNameIdentityPermission.cs
- DataGridItemCollection.cs
- StorageAssociationTypeMapping.cs
- WebPartCatalogAddVerb.cs
- NoResizeHandleGlyph.cs
- ReturnValue.cs
- TokenBasedSet.cs
- COM2ColorConverter.cs
- AutoSizeComboBox.cs
- ViewManager.cs
- BeginStoryboard.cs
- DisplayInformation.cs
- AdornerPresentationContext.cs
- OdbcCommand.cs
- Int64.cs
- CodeDelegateCreateExpression.cs
- Error.cs
- MutexSecurity.cs
- BasicExpressionVisitor.cs
- DbParameterHelper.cs
- BaseTemplateCodeDomTreeGenerator.cs
- DoubleKeyFrameCollection.cs
- MissingMethodException.cs
- DataGridViewCellLinkedList.cs