Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / ndp / fx / src / DLinq / Dlinq / SqlClient / Query / SqlAliasesReferenced.cs / 1 / SqlAliasesReferenced.cs
using System;
using System.Collections.Generic;
using System.Text;
namespace System.Data.Linq.SqlClient
{
///
/// Find referenced Aliases within a node.
///
internal static class SqlAliasesReferenced
{
///
/// Private visitor which walks the tree and looks for referenced aliases.
///
private class Visitor : SqlVisitor {
internal IEnumerable aliases;
internal bool referencesAnyMatchingAliases = false;
internal override SqlNode Visit(SqlNode node) {
// Short-circuit when the answer is alreading known
if (this.referencesAnyMatchingAliases) {
return node;
}
return base.Visit(node);
}
internal SqlAlias VisitAliasConsumed(SqlAlias a) {
if (a == null)
return a;
bool match = false;
foreach (SqlAlias alias in aliases)
if (alias == a) {
match = true;
break;
}
if (match) {
this.referencesAnyMatchingAliases = true;
}
return a;
}
internal override SqlExpression VisitColumn(SqlColumn col) {
VisitAliasConsumed(col.Alias);
VisitExpression(col.Expression);
return col;
}
internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
VisitAliasConsumed(cref.Column.Alias);
VisitExpression(cref.Column.Expression);
return cref;
}
}
///
/// Returns true iff the given node references any aliases the list of 'aliases'.
///
internal static bool ReferencesAny(SqlNode node, IEnumerable aliases) {
Visitor visitor = new Visitor();
visitor.aliases = aliases;
visitor.Visit(node);
return visitor.referencesAnyMatchingAliases;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
using System;
using System.Collections.Generic;
using System.Text;
namespace System.Data.Linq.SqlClient
{
///
/// Find referenced Aliases within a node.
///
internal static class SqlAliasesReferenced
{
///
/// Private visitor which walks the tree and looks for referenced aliases.
///
private class Visitor : SqlVisitor {
internal IEnumerable aliases;
internal bool referencesAnyMatchingAliases = false;
internal override SqlNode Visit(SqlNode node) {
// Short-circuit when the answer is alreading known
if (this.referencesAnyMatchingAliases) {
return node;
}
return base.Visit(node);
}
internal SqlAlias VisitAliasConsumed(SqlAlias a) {
if (a == null)
return a;
bool match = false;
foreach (SqlAlias alias in aliases)
if (alias == a) {
match = true;
break;
}
if (match) {
this.referencesAnyMatchingAliases = true;
}
return a;
}
internal override SqlExpression VisitColumn(SqlColumn col) {
VisitAliasConsumed(col.Alias);
VisitExpression(col.Expression);
return col;
}
internal override SqlExpression VisitColumnRef(SqlColumnRef cref) {
VisitAliasConsumed(cref.Column.Alias);
VisitExpression(cref.Column.Expression);
return cref;
}
}
///
/// Returns true iff the given node references any aliases the list of 'aliases'.
///
internal static bool ReferencesAny(SqlNode node, IEnumerable aliases) {
Visitor visitor = new Visitor();
visitor.aliases = aliases;
visitor.Visit(node);
return visitor.referencesAnyMatchingAliases;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ProxyWebPartConnectionCollection.cs
- ReferenceSchema.cs
- ProxyWebPart.cs
- SettingsContext.cs
- invalidudtexception.cs
- LinearGradientBrush.cs
- AttributeAction.cs
- DataPointer.cs
- ConfigurationStrings.cs
- AttributeCollection.cs
- SimpleLine.cs
- ApplicationManager.cs
- ObjectListSelectEventArgs.cs
- _UriSyntax.cs
- BasePropertyDescriptor.cs
- DateTime.cs
- ZeroOpNode.cs
- HMACSHA1.cs
- WebScriptServiceHostFactory.cs
- CryptoApi.cs
- SmiMetaDataProperty.cs
- OleDbCommandBuilder.cs
- MonitoringDescriptionAttribute.cs
- ToolStripLabel.cs
- diagnosticsswitches.cs
- EntityRecordInfo.cs
- SqlInfoMessageEvent.cs
- Vector3DKeyFrameCollection.cs
- OdbcException.cs
- PrivateUnsafeNativeCompoundFileMethods.cs
- MeshGeometry3D.cs
- ConfigXmlSignificantWhitespace.cs
- ReflectEventDescriptor.cs
- FlowchartStart.xaml.cs
- designeractionbehavior.cs
- XmlNamespaceDeclarationsAttribute.cs
- ListControl.cs
- BatchServiceHost.cs
- Nullable.cs
- TcpHostedTransportConfiguration.cs
- XslAstAnalyzer.cs
- DataFieldEditor.cs
- TemplatedWizardStep.cs
- SafeNativeMemoryHandle.cs
- OleDbSchemaGuid.cs
- WebPartZone.cs
- Error.cs
- DataControlPagerLinkButton.cs
- FixedSOMContainer.cs
- Control.cs
- SQLInt16.cs
- SpecialNameAttribute.cs
- CfgParser.cs
- ResetableIterator.cs
- ObjectDataSourceMethodEventArgs.cs
- Console.cs
- EntityDataSourceSelectedEventArgs.cs
- ElementUtil.cs
- CodeAttributeDeclarationCollection.cs
- LocationReference.cs
- XmlDownloadManager.cs
- HttpProfileGroupBase.cs
- UserControlBuildProvider.cs
- AsymmetricAlgorithm.cs
- IPipelineRuntime.cs
- Stopwatch.cs
- activationcontext.cs
- EncryptedPackage.cs
- RequestResponse.cs
- WebPartsPersonalizationAuthorization.cs
- SamlSubjectStatement.cs
- X509ChainElement.cs
- DataGridToolTip.cs
- WebBrowserSiteBase.cs
- XmlName.cs
- PartitionResolver.cs
- StackOverflowException.cs
- AxisAngleRotation3D.cs
- SqlNodeTypeOperators.cs
- UnionCodeGroup.cs
- CodeBlockBuilder.cs
- OleDbSchemaGuid.cs
- SQLInt64.cs
- WebPartDescriptionCollection.cs
- WindowsProgressbar.cs
- StdValidatorsAndConverters.cs
- MultipartContentParser.cs
- DWriteFactory.cs
- SettingsBase.cs
- QuadraticBezierSegment.cs
- EntityKey.cs
- ListControlConvertEventArgs.cs
- DataViewListener.cs
- OrderByQueryOptionExpression.cs
- ComboBoxItem.cs
- FormClosedEvent.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- CornerRadiusConverter.cs
- NetworkCredential.cs
- DataGridViewColumnConverter.cs