Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Query / InternalTrees / ColumnMapVisitor.cs / 2 / ColumnMapVisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- namespace System.Data.Query.InternalTrees { using System.Collections; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Data.Common.CommandTrees; using System.Data.Metadata.Edm; using System.Data.Query.PlanCompiler; using System.Diagnostics; using System.IO; using System.Threading; ////// Basic Visitor Design Pattern support for ColumnMap hierarchy; /// /// This visitor class will walk the entire hierarchy, but does not /// return results; it's useful for operations such as printing and /// searching. /// ///internal abstract class ColumnMapVisitor { #region visitor helpers /// /// Common List(ColumnMap) code /// /// /// protected void VisitList(TListType[] columnMaps, TArgType arg) where TListType : ColumnMap { foreach (TListType columnMap in columnMaps) { columnMap.Accept(this, arg); } } #endregion #region EntityIdentity handling protected void VisitEntityIdentity(EntityIdentity entityIdentity, TArgType arg) { DiscriminatedEntityIdentity dei = entityIdentity as DiscriminatedEntityIdentity; if (null != dei) { VisitEntityIdentity(dei, arg); } else { VisitEntityIdentity((SimpleEntityIdentity)entityIdentity, arg); } } protected virtual void VisitEntityIdentity(DiscriminatedEntityIdentity entityIdentity, TArgType arg) { entityIdentity.EntitySetColumnMap.Accept(this, arg); foreach (SimpleColumnMap columnMap in entityIdentity.Keys) { columnMap.Accept(this, arg); } } protected virtual void VisitEntityIdentity(SimpleEntityIdentity entityIdentity, TArgType arg) { foreach (SimpleColumnMap columnMap in entityIdentity.Keys) { columnMap.Accept(this, arg); } } #endregion #region Visitor methods internal virtual void Visit(ComplexTypeColumnMap columnMap, TArgType arg) { ColumnMap nullSentinel = columnMap.NullSentinel; if (null != nullSentinel) { nullSentinel.Accept(this, arg); } foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(DiscriminatedCollectionColumnMap columnMap, TArgType arg) { columnMap.Discriminator.Accept(this, arg); foreach (SimpleColumnMap fk in columnMap.ForeignKeys) { fk.Accept(this, arg); } foreach (SimpleColumnMap k in columnMap.Keys) { k.Accept(this, arg); } columnMap.Element.Accept(this, arg); } internal virtual void Visit(EntityColumnMap columnMap, TArgType arg) { VisitEntityIdentity(columnMap.EntityIdentity, arg); foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(SimplePolymorphicColumnMap columnMap, TArgType arg) { columnMap.TypeDiscriminator.Accept(this, arg); foreach (ColumnMap cm in columnMap.TypeChoices.Values) { cm.Accept(this, arg); } foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(MultipleDiscriminatorPolymorphicColumnMap columnMap, TArgType arg) { foreach (var typeDiscriminator in columnMap.TypeDiscriminators) { typeDiscriminator.Accept(this, arg); } foreach (var typeColumnMap in columnMap.TypeChoices.Values) { typeColumnMap.Accept(this, arg); } foreach (var property in columnMap.Properties) { property.Accept(this, arg); } } internal virtual void Visit(RecordColumnMap columnMap, TArgType arg) { ColumnMap nullSentinel = columnMap.NullSentinel; if (null != nullSentinel) { nullSentinel.Accept(this, arg); } foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(RefColumnMap columnMap, TArgType arg) { VisitEntityIdentity(columnMap.EntityIdentity, arg); } internal virtual void Visit(ScalarColumnMap columnMap, TArgType arg) { } internal virtual void Visit(SimpleCollectionColumnMap columnMap, TArgType arg) { foreach (SimpleColumnMap fk in columnMap.ForeignKeys) { fk.Accept(this, arg); } foreach (SimpleColumnMap k in columnMap.Keys) { k.Accept(this, arg); } columnMap.Element.Accept(this, arg); } internal virtual void Visit(VarRefColumnMap columnMap, TArgType arg) { } #endregion } /// /// Basic Visitor Design Pattern support for ColumnMap hierarchy; /// /// This visitor class allows you to return results; it's useful for operations /// that copy or manipulate the hierarchy. /// ////// internal abstract class ColumnMapVisitorWithResults { #region EntityIdentity handling protected EntityIdentity VisitEntityIdentity(EntityIdentity entityIdentity, TArgType arg) { DiscriminatedEntityIdentity dei = entityIdentity as DiscriminatedEntityIdentity; if (null != dei) { return VisitEntityIdentity(dei, arg); } else { return VisitEntityIdentity((SimpleEntityIdentity)entityIdentity, arg); } } protected virtual EntityIdentity VisitEntityIdentity(DiscriminatedEntityIdentity entityIdentity, TArgType arg) { return entityIdentity; } protected virtual EntityIdentity VisitEntityIdentity(SimpleEntityIdentity entityIdentity, TArgType arg) { return entityIdentity; } #endregion #region Visitor methods internal abstract TResultType Visit(ComplexTypeColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(DiscriminatedCollectionColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(EntityColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(SimplePolymorphicColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(RecordColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(RefColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(ScalarColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(SimpleCollectionColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(VarRefColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(MultipleDiscriminatorPolymorphicColumnMap columnMap, TArgType arg); #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // // @owner [....], [....] //--------------------------------------------------------------------- namespace System.Data.Query.InternalTrees { using System.Collections; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.Common; using System.Data.Common.CommandTrees; using System.Data.Metadata.Edm; using System.Data.Query.PlanCompiler; using System.Diagnostics; using System.IO; using System.Threading; ////// Basic Visitor Design Pattern support for ColumnMap hierarchy; /// /// This visitor class will walk the entire hierarchy, but does not /// return results; it's useful for operations such as printing and /// searching. /// ///internal abstract class ColumnMapVisitor { #region visitor helpers /// /// Common List(ColumnMap) code /// /// /// protected void VisitList(TListType[] columnMaps, TArgType arg) where TListType : ColumnMap { foreach (TListType columnMap in columnMaps) { columnMap.Accept(this, arg); } } #endregion #region EntityIdentity handling protected void VisitEntityIdentity(EntityIdentity entityIdentity, TArgType arg) { DiscriminatedEntityIdentity dei = entityIdentity as DiscriminatedEntityIdentity; if (null != dei) { VisitEntityIdentity(dei, arg); } else { VisitEntityIdentity((SimpleEntityIdentity)entityIdentity, arg); } } protected virtual void VisitEntityIdentity(DiscriminatedEntityIdentity entityIdentity, TArgType arg) { entityIdentity.EntitySetColumnMap.Accept(this, arg); foreach (SimpleColumnMap columnMap in entityIdentity.Keys) { columnMap.Accept(this, arg); } } protected virtual void VisitEntityIdentity(SimpleEntityIdentity entityIdentity, TArgType arg) { foreach (SimpleColumnMap columnMap in entityIdentity.Keys) { columnMap.Accept(this, arg); } } #endregion #region Visitor methods internal virtual void Visit(ComplexTypeColumnMap columnMap, TArgType arg) { ColumnMap nullSentinel = columnMap.NullSentinel; if (null != nullSentinel) { nullSentinel.Accept(this, arg); } foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(DiscriminatedCollectionColumnMap columnMap, TArgType arg) { columnMap.Discriminator.Accept(this, arg); foreach (SimpleColumnMap fk in columnMap.ForeignKeys) { fk.Accept(this, arg); } foreach (SimpleColumnMap k in columnMap.Keys) { k.Accept(this, arg); } columnMap.Element.Accept(this, arg); } internal virtual void Visit(EntityColumnMap columnMap, TArgType arg) { VisitEntityIdentity(columnMap.EntityIdentity, arg); foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(SimplePolymorphicColumnMap columnMap, TArgType arg) { columnMap.TypeDiscriminator.Accept(this, arg); foreach (ColumnMap cm in columnMap.TypeChoices.Values) { cm.Accept(this, arg); } foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(MultipleDiscriminatorPolymorphicColumnMap columnMap, TArgType arg) { foreach (var typeDiscriminator in columnMap.TypeDiscriminators) { typeDiscriminator.Accept(this, arg); } foreach (var typeColumnMap in columnMap.TypeChoices.Values) { typeColumnMap.Accept(this, arg); } foreach (var property in columnMap.Properties) { property.Accept(this, arg); } } internal virtual void Visit(RecordColumnMap columnMap, TArgType arg) { ColumnMap nullSentinel = columnMap.NullSentinel; if (null != nullSentinel) { nullSentinel.Accept(this, arg); } foreach (ColumnMap p in columnMap.Properties) { p.Accept(this, arg); } } internal virtual void Visit(RefColumnMap columnMap, TArgType arg) { VisitEntityIdentity(columnMap.EntityIdentity, arg); } internal virtual void Visit(ScalarColumnMap columnMap, TArgType arg) { } internal virtual void Visit(SimpleCollectionColumnMap columnMap, TArgType arg) { foreach (SimpleColumnMap fk in columnMap.ForeignKeys) { fk.Accept(this, arg); } foreach (SimpleColumnMap k in columnMap.Keys) { k.Accept(this, arg); } columnMap.Element.Accept(this, arg); } internal virtual void Visit(VarRefColumnMap columnMap, TArgType arg) { } #endregion } /// /// Basic Visitor Design Pattern support for ColumnMap hierarchy; /// /// This visitor class allows you to return results; it's useful for operations /// that copy or manipulate the hierarchy. /// ////// internal abstract class ColumnMapVisitorWithResults { #region EntityIdentity handling protected EntityIdentity VisitEntityIdentity(EntityIdentity entityIdentity, TArgType arg) { DiscriminatedEntityIdentity dei = entityIdentity as DiscriminatedEntityIdentity; if (null != dei) { return VisitEntityIdentity(dei, arg); } else { return VisitEntityIdentity((SimpleEntityIdentity)entityIdentity, arg); } } protected virtual EntityIdentity VisitEntityIdentity(DiscriminatedEntityIdentity entityIdentity, TArgType arg) { return entityIdentity; } protected virtual EntityIdentity VisitEntityIdentity(SimpleEntityIdentity entityIdentity, TArgType arg) { return entityIdentity; } #endregion #region Visitor methods internal abstract TResultType Visit(ComplexTypeColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(DiscriminatedCollectionColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(EntityColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(SimplePolymorphicColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(RecordColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(RefColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(ScalarColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(SimpleCollectionColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(VarRefColumnMap columnMap, TArgType arg); internal abstract TResultType Visit(MultipleDiscriminatorPolymorphicColumnMap columnMap, TArgType arg); #endregion } } // 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
- SerializationStore.cs
- FontEditor.cs
- loginstatus.cs
- ToolTipAutomationPeer.cs
- OleDbParameter.cs
- _NegotiateClient.cs
- ManageRequest.cs
- CqlGenerator.cs
- DbConnectionStringCommon.cs
- PriorityQueue.cs
- EntityDescriptor.cs
- PropertyAccessVisitor.cs
- DataFormat.cs
- SqlNodeAnnotations.cs
- DataSourceView.cs
- NameValuePermission.cs
- BufferedReadStream.cs
- RegexRunner.cs
- LogicalTreeHelper.cs
- EdmItemError.cs
- MetadataArtifactLoaderResource.cs
- AdCreatedEventArgs.cs
- LocalTransaction.cs
- DragStartedEventArgs.cs
- SyndicationItem.cs
- DbParameterCollection.cs
- RestrictedTransactionalPackage.cs
- RowParagraph.cs
- ContextInformation.cs
- VisualBrush.cs
- XmlIlTypeHelper.cs
- ValidatingReaderNodeData.cs
- TextLineResult.cs
- BamlResourceSerializer.cs
- OpCopier.cs
- DocumentApplicationDocumentViewer.cs
- XamlTypeMapper.cs
- RegisteredDisposeScript.cs
- coordinatorscratchpad.cs
- ZoneIdentityPermission.cs
- SoapHeader.cs
- HostingPreferredMapPath.cs
- MissingSatelliteAssemblyException.cs
- XNameConverter.cs
- TextBox.cs
- UnauthorizedWebPart.cs
- DataGridViewRowConverter.cs
- SchemaImporter.cs
- PinnedBufferMemoryStream.cs
- AuthStoreRoleProvider.cs
- WindowsListViewGroupHelper.cs
- ContentValidator.cs
- EventMappingSettingsCollection.cs
- FilterElement.cs
- TextViewDesigner.cs
- PeerNode.cs
- ListBoxItem.cs
- ObjectNavigationPropertyMapping.cs
- AnnotationDocumentPaginator.cs
- ExtendedTransformFactory.cs
- SpellerInterop.cs
- EncryptedPackage.cs
- RequestBringIntoViewEventArgs.cs
- SignedXml.cs
- DurableOperationContext.cs
- DataGridComponentEditor.cs
- IISMapPath.cs
- MenuDesigner.cs
- DateTimeUtil.cs
- ValueSerializer.cs
- LifetimeServices.cs
- DataGridViewCellPaintingEventArgs.cs
- FontUnitConverter.cs
- OutputScopeManager.cs
- PerformanceCounter.cs
- DesignerTransaction.cs
- Bidi.cs
- ReliableChannelListener.cs
- BinaryCommonClasses.cs
- ZipIOBlockManager.cs
- DataServiceStreamResponse.cs
- ElementFactory.cs
- XmlSchemaAttributeGroupRef.cs
- Label.cs
- FixedSOMTableRow.cs
- NominalTypeEliminator.cs
- WebControlParameterProxy.cs
- InputReportEventArgs.cs
- TextContainerChangeEventArgs.cs
- Stack.cs
- DataError.cs
- ContextMenuStripGroup.cs
- DataView.cs
- SqlErrorCollection.cs
- DesigntimeLicenseContextSerializer.cs
- ListControl.cs
- CodeGotoStatement.cs
- FastPropertyAccessor.cs
- RequestContextBase.cs
- Encoding.cs