Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataEntity / System / Data / Mapping / basemetadatamappingvisitor.cs / 1305376 / basemetadatamappingvisitor.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Metadata.Edm; using System.Data.Common; using System.Data.Common.Utils; using System.Data.Mapping; using System.Diagnostics; using System.Globalization; namespace System.Data.Mapping { internal abstract class BaseMetadataMappingVisitor { protected BaseMetadataMappingVisitor() { } protected virtual void Visit(StorageEntityContainerMapping storageEntityContainerMapping) { Visit(storageEntityContainerMapping.EdmEntityContainer); Visit(storageEntityContainerMapping.StorageEntityContainer); foreach (var mapping in storageEntityContainerMapping.EntitySetMaps) { Visit(mapping); } } protected virtual void Visit(EntitySetBase entitySetBase) { // this is a switching node, so no object header and footer will be add for this node, // also this Visit won't add the object to the seen list switch (entitySetBase.BuiltInTypeKind) { case BuiltInTypeKind.EntitySet: Visit((EntitySet)entitySetBase); break; case BuiltInTypeKind.AssociationSet: Visit((AssociationSet)entitySetBase); break; default: Debug.Fail(string.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", entitySetBase.BuiltInTypeKind)); break; } } protected virtual void Visit(StorageSetMapping storageSetMapping) { foreach (var typeMapping in storageSetMapping.TypeMappings) { Visit(typeMapping); } Visit(storageSetMapping.EntityContainerMapping); } protected virtual void Visit(EntityContainer entityContainer) { foreach (var set in entityContainer.BaseEntitySets) { Visit(set); } } protected virtual void Visit(EntitySet entitySet) { Visit(entitySet.ElementType); Visit(entitySet.EntityContainer); } protected virtual void Visit(AssociationSet associationSet) { Visit(associationSet.ElementType); Visit(associationSet.EntityContainer); foreach (var end in associationSet.AssociationSetEnds) { Visit(end); } } protected virtual void Visit(EntityType entityType) { foreach (var kmember in entityType.KeyMembers) { Visit(kmember); } foreach (var member in entityType.GetDeclaredOnlyMembers()) { Visit(member); } foreach (var nproperty in entityType.NavigationProperties) { Visit(nproperty); } foreach (var property in entityType.Properties) { Visit(property); } } protected virtual void Visit(AssociationType associationType) { foreach (var endMember in associationType.AssociationEndMembers) { Visit(endMember); } Visit(associationType.BaseType); foreach (var keyMember in associationType.KeyMembers) { Visit(keyMember); } foreach (var member in associationType.GetDeclaredOnlyMembers ()) { Visit(member); } foreach (var item in associationType.ReferentialConstraints) { Visit(item); } foreach (var item in associationType.RelationshipEndMembers) { Visit(item); } } protected virtual void Visit(AssociationSetEnd associationSetEnd) { Visit(associationSetEnd.CorrespondingAssociationEndMember); Visit(associationSetEnd.EntitySet); Visit(associationSetEnd.ParentAssociationSet); } protected virtual void Visit(EdmProperty edmProperty) { Visit(edmProperty.TypeUsage); } protected virtual void Visit(NavigationProperty navigationProperty) { Visit(navigationProperty.FromEndMember); Visit(navigationProperty.RelationshipType); Visit(navigationProperty.ToEndMember); Visit(navigationProperty.TypeUsage); } protected virtual void Visit(EdmMember edmMember) { Visit(edmMember.TypeUsage); } protected virtual void Visit(AssociationEndMember associationEndMember) { Visit(associationEndMember.TypeUsage); } protected virtual void Visit(ReferentialConstraint referentialConstraint) { foreach (var property in referentialConstraint.FromProperties) { Visit(property); } Visit(referentialConstraint.FromRole); foreach (var property in referentialConstraint.ToProperties) { Visit(property); } Visit(referentialConstraint.ToRole); } protected virtual void Visit(RelationshipEndMember relationshipEndMember) { Visit(relationshipEndMember.TypeUsage); } protected virtual void Visit(TypeUsage typeUsage) { Visit(typeUsage.EdmType); foreach (var facet in typeUsage.Facets) { Visit(facet); } } protected virtual void Visit(RelationshipType relationshipType) { // switching node, will not be add to the seen list if (relationshipType == null) { return; } #region Inner data visit switch (relationshipType.BuiltInTypeKind) { case BuiltInTypeKind.AssociationType: Visit((AssociationType)relationshipType); break; default: Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", relationshipType.BuiltInTypeKind)); break; } #endregion } protected virtual void Visit(EdmType edmType) { // switching node, will not be add to the seen list if (edmType == null) { return; } #region Inner data visit switch (edmType.BuiltInTypeKind) { case BuiltInTypeKind.EntityType: Visit((EntityType)edmType); break; case BuiltInTypeKind.AssociationType: Visit((AssociationType)edmType); break; case BuiltInTypeKind.EdmFunction: Visit((EdmFunction)edmType); break; case BuiltInTypeKind.ComplexType: Visit((ComplexType)edmType); break; case BuiltInTypeKind.PrimitiveType: Visit((PrimitiveType)edmType); break; case BuiltInTypeKind.RefType: Visit((RefType)edmType); break; case BuiltInTypeKind.CollectionType: Visit((CollectionType)edmType); break; case BuiltInTypeKind.EnumType: Visit((EnumType)edmType); break; default: Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", edmType.BuiltInTypeKind)); break; } #endregion } protected virtual void Visit(Facet facet) { Visit(facet.FacetType); } protected virtual void Visit(EdmFunction edmFunction) { Visit(edmFunction.BaseType); Visit(edmFunction.EntitySet); foreach (var functionParameter in edmFunction.Parameters) { Visit(functionParameter); } Visit(edmFunction.ReturnParameter); } protected virtual void Visit(PrimitiveType primitiveType) { } protected virtual void Visit(ComplexType complexType) { Visit(complexType.BaseType); foreach (var member in complexType.Members) { Visit(member); } foreach (var property in complexType.Properties) { Visit(property); } } protected virtual void Visit(RefType refType) { Visit(refType.BaseType); Visit(refType.ElementType); } protected virtual void Visit(EnumType enumType) { foreach (var member in enumType.EnumMembers) { Visit(member); } } protected virtual void Visit(EnumMember enumMember) { } protected virtual void Visit(CollectionType collectionType) { Visit(collectionType.BaseType); Visit(collectionType.TypeUsage); } protected virtual void Visit(EntityTypeBase entityTypeBase) { // switching node if (entityTypeBase == null) { return; } switch (entityTypeBase.BuiltInTypeKind) { case BuiltInTypeKind.AssociationType: Visit((AssociationType)entityTypeBase); break; case BuiltInTypeKind.EntityType: Visit((EntityType)entityTypeBase); break; default: Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", entityTypeBase.BuiltInTypeKind)); break; } } protected virtual void Visit(FunctionParameter functionParameter) { Visit(functionParameter.DeclaringFunction); Visit(functionParameter.TypeUsage); } protected virtual void Visit(DbProviderManifest providerManifest) { } protected virtual void Visit(StorageTypeMapping storageTypeMapping) { foreach (var type in storageTypeMapping.IsOfTypes) { Visit(type); } foreach (var fragment in storageTypeMapping.MappingFragments) { Visit(fragment); } Visit(storageTypeMapping.SetMapping); foreach (var type in storageTypeMapping.Types) { Visit(type); } } protected virtual void Visit(StorageMappingFragment storageMappingFragment) { foreach (var property in storageMappingFragment.AllProperties) { Visit(property); } Visit((EntitySetBase)storageMappingFragment.TableSet); } protected virtual void Visit(StoragePropertyMapping storagePropertyMapping) { // this is a switching node, so no object header and footer will be add for this node, // also this Visit won't add the object to the seen list if (storagePropertyMapping.GetType() == typeof(StorageComplexPropertyMapping)) { Visit((StorageComplexPropertyMapping)storagePropertyMapping); } else if (storagePropertyMapping.GetType() == typeof(StorageConditionPropertyMapping)) { Visit((StorageConditionPropertyMapping)storagePropertyMapping); } else if (storagePropertyMapping.GetType() == typeof(StorageScalarPropertyMapping)) { Visit((StorageScalarPropertyMapping)storagePropertyMapping); } else { Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", storagePropertyMapping.GetType())); } } protected virtual void Visit(StorageComplexPropertyMapping storageComplexPropertyMapping) { Visit(storageComplexPropertyMapping.EdmProperty); foreach (var mapping in storageComplexPropertyMapping.TypeMappings) { Visit(mapping); } } protected virtual void Visit(StorageConditionPropertyMapping storageConditionPropertyMapping) { Visit(storageConditionPropertyMapping.ColumnProperty); Visit(storageConditionPropertyMapping.EdmProperty); } protected virtual void Visit(StorageScalarPropertyMapping storageScalarPropertyMapping) { Visit(storageScalarPropertyMapping.ColumnProperty); Visit(storageScalarPropertyMapping.EdmProperty); } protected virtual void Visit(StorageComplexTypeMapping storageComplexTypeMapping) { foreach (var property in storageComplexTypeMapping.AllProperties) { Visit(property); } foreach (var type in storageComplexTypeMapping.IsOfTypes) { Visit(type); } foreach (var type in storageComplexTypeMapping.Types) { Visit(type); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- // // Copyright (c) Microsoft Corporation. All rights reserved. // // @owner [....] // @backupOwner [....] //--------------------------------------------------------------------- using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.Metadata.Edm; using System.Data.Common; using System.Data.Common.Utils; using System.Data.Mapping; using System.Diagnostics; using System.Globalization; namespace System.Data.Mapping { internal abstract class BaseMetadataMappingVisitor { protected BaseMetadataMappingVisitor() { } protected virtual void Visit(StorageEntityContainerMapping storageEntityContainerMapping) { Visit(storageEntityContainerMapping.EdmEntityContainer); Visit(storageEntityContainerMapping.StorageEntityContainer); foreach (var mapping in storageEntityContainerMapping.EntitySetMaps) { Visit(mapping); } } protected virtual void Visit(EntitySetBase entitySetBase) { // this is a switching node, so no object header and footer will be add for this node, // also this Visit won't add the object to the seen list switch (entitySetBase.BuiltInTypeKind) { case BuiltInTypeKind.EntitySet: Visit((EntitySet)entitySetBase); break; case BuiltInTypeKind.AssociationSet: Visit((AssociationSet)entitySetBase); break; default: Debug.Fail(string.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", entitySetBase.BuiltInTypeKind)); break; } } protected virtual void Visit(StorageSetMapping storageSetMapping) { foreach (var typeMapping in storageSetMapping.TypeMappings) { Visit(typeMapping); } Visit(storageSetMapping.EntityContainerMapping); } protected virtual void Visit(EntityContainer entityContainer) { foreach (var set in entityContainer.BaseEntitySets) { Visit(set); } } protected virtual void Visit(EntitySet entitySet) { Visit(entitySet.ElementType); Visit(entitySet.EntityContainer); } protected virtual void Visit(AssociationSet associationSet) { Visit(associationSet.ElementType); Visit(associationSet.EntityContainer); foreach (var end in associationSet.AssociationSetEnds) { Visit(end); } } protected virtual void Visit(EntityType entityType) { foreach (var kmember in entityType.KeyMembers) { Visit(kmember); } foreach (var member in entityType.GetDeclaredOnlyMembers()) { Visit(member); } foreach (var nproperty in entityType.NavigationProperties) { Visit(nproperty); } foreach (var property in entityType.Properties) { Visit(property); } } protected virtual void Visit(AssociationType associationType) { foreach (var endMember in associationType.AssociationEndMembers) { Visit(endMember); } Visit(associationType.BaseType); foreach (var keyMember in associationType.KeyMembers) { Visit(keyMember); } foreach (var member in associationType.GetDeclaredOnlyMembers ()) { Visit(member); } foreach (var item in associationType.ReferentialConstraints) { Visit(item); } foreach (var item in associationType.RelationshipEndMembers) { Visit(item); } } protected virtual void Visit(AssociationSetEnd associationSetEnd) { Visit(associationSetEnd.CorrespondingAssociationEndMember); Visit(associationSetEnd.EntitySet); Visit(associationSetEnd.ParentAssociationSet); } protected virtual void Visit(EdmProperty edmProperty) { Visit(edmProperty.TypeUsage); } protected virtual void Visit(NavigationProperty navigationProperty) { Visit(navigationProperty.FromEndMember); Visit(navigationProperty.RelationshipType); Visit(navigationProperty.ToEndMember); Visit(navigationProperty.TypeUsage); } protected virtual void Visit(EdmMember edmMember) { Visit(edmMember.TypeUsage); } protected virtual void Visit(AssociationEndMember associationEndMember) { Visit(associationEndMember.TypeUsage); } protected virtual void Visit(ReferentialConstraint referentialConstraint) { foreach (var property in referentialConstraint.FromProperties) { Visit(property); } Visit(referentialConstraint.FromRole); foreach (var property in referentialConstraint.ToProperties) { Visit(property); } Visit(referentialConstraint.ToRole); } protected virtual void Visit(RelationshipEndMember relationshipEndMember) { Visit(relationshipEndMember.TypeUsage); } protected virtual void Visit(TypeUsage typeUsage) { Visit(typeUsage.EdmType); foreach (var facet in typeUsage.Facets) { Visit(facet); } } protected virtual void Visit(RelationshipType relationshipType) { // switching node, will not be add to the seen list if (relationshipType == null) { return; } #region Inner data visit switch (relationshipType.BuiltInTypeKind) { case BuiltInTypeKind.AssociationType: Visit((AssociationType)relationshipType); break; default: Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", relationshipType.BuiltInTypeKind)); break; } #endregion } protected virtual void Visit(EdmType edmType) { // switching node, will not be add to the seen list if (edmType == null) { return; } #region Inner data visit switch (edmType.BuiltInTypeKind) { case BuiltInTypeKind.EntityType: Visit((EntityType)edmType); break; case BuiltInTypeKind.AssociationType: Visit((AssociationType)edmType); break; case BuiltInTypeKind.EdmFunction: Visit((EdmFunction)edmType); break; case BuiltInTypeKind.ComplexType: Visit((ComplexType)edmType); break; case BuiltInTypeKind.PrimitiveType: Visit((PrimitiveType)edmType); break; case BuiltInTypeKind.RefType: Visit((RefType)edmType); break; case BuiltInTypeKind.CollectionType: Visit((CollectionType)edmType); break; case BuiltInTypeKind.EnumType: Visit((EnumType)edmType); break; default: Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", edmType.BuiltInTypeKind)); break; } #endregion } protected virtual void Visit(Facet facet) { Visit(facet.FacetType); } protected virtual void Visit(EdmFunction edmFunction) { Visit(edmFunction.BaseType); Visit(edmFunction.EntitySet); foreach (var functionParameter in edmFunction.Parameters) { Visit(functionParameter); } Visit(edmFunction.ReturnParameter); } protected virtual void Visit(PrimitiveType primitiveType) { } protected virtual void Visit(ComplexType complexType) { Visit(complexType.BaseType); foreach (var member in complexType.Members) { Visit(member); } foreach (var property in complexType.Properties) { Visit(property); } } protected virtual void Visit(RefType refType) { Visit(refType.BaseType); Visit(refType.ElementType); } protected virtual void Visit(EnumType enumType) { foreach (var member in enumType.EnumMembers) { Visit(member); } } protected virtual void Visit(EnumMember enumMember) { } protected virtual void Visit(CollectionType collectionType) { Visit(collectionType.BaseType); Visit(collectionType.TypeUsage); } protected virtual void Visit(EntityTypeBase entityTypeBase) { // switching node if (entityTypeBase == null) { return; } switch (entityTypeBase.BuiltInTypeKind) { case BuiltInTypeKind.AssociationType: Visit((AssociationType)entityTypeBase); break; case BuiltInTypeKind.EntityType: Visit((EntityType)entityTypeBase); break; default: Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", entityTypeBase.BuiltInTypeKind)); break; } } protected virtual void Visit(FunctionParameter functionParameter) { Visit(functionParameter.DeclaringFunction); Visit(functionParameter.TypeUsage); } protected virtual void Visit(DbProviderManifest providerManifest) { } protected virtual void Visit(StorageTypeMapping storageTypeMapping) { foreach (var type in storageTypeMapping.IsOfTypes) { Visit(type); } foreach (var fragment in storageTypeMapping.MappingFragments) { Visit(fragment); } Visit(storageTypeMapping.SetMapping); foreach (var type in storageTypeMapping.Types) { Visit(type); } } protected virtual void Visit(StorageMappingFragment storageMappingFragment) { foreach (var property in storageMappingFragment.AllProperties) { Visit(property); } Visit((EntitySetBase)storageMappingFragment.TableSet); } protected virtual void Visit(StoragePropertyMapping storagePropertyMapping) { // this is a switching node, so no object header and footer will be add for this node, // also this Visit won't add the object to the seen list if (storagePropertyMapping.GetType() == typeof(StorageComplexPropertyMapping)) { Visit((StorageComplexPropertyMapping)storagePropertyMapping); } else if (storagePropertyMapping.GetType() == typeof(StorageConditionPropertyMapping)) { Visit((StorageConditionPropertyMapping)storagePropertyMapping); } else if (storagePropertyMapping.GetType() == typeof(StorageScalarPropertyMapping)) { Visit((StorageScalarPropertyMapping)storagePropertyMapping); } else { Debug.Fail(String.Format(CultureInfo.InvariantCulture, "Found type '{0}', did we add a new type?", storagePropertyMapping.GetType())); } } protected virtual void Visit(StorageComplexPropertyMapping storageComplexPropertyMapping) { Visit(storageComplexPropertyMapping.EdmProperty); foreach (var mapping in storageComplexPropertyMapping.TypeMappings) { Visit(mapping); } } protected virtual void Visit(StorageConditionPropertyMapping storageConditionPropertyMapping) { Visit(storageConditionPropertyMapping.ColumnProperty); Visit(storageConditionPropertyMapping.EdmProperty); } protected virtual void Visit(StorageScalarPropertyMapping storageScalarPropertyMapping) { Visit(storageScalarPropertyMapping.ColumnProperty); Visit(storageScalarPropertyMapping.EdmProperty); } protected virtual void Visit(StorageComplexTypeMapping storageComplexTypeMapping) { foreach (var property in storageComplexTypeMapping.AllProperties) { Visit(property); } foreach (var type in storageComplexTypeMapping.IsOfTypes) { Visit(type); } foreach (var type in storageComplexTypeMapping.Types) { Visit(type); } } } } // 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
- XPathSingletonIterator.cs
- InfoCardRSAPKCS1SignatureFormatter.cs
- ToolStripPanelRenderEventArgs.cs
- TextComposition.cs
- FrameworkContextData.cs
- RC2.cs
- MaterialGroup.cs
- FrameworkObject.cs
- NotFiniteNumberException.cs
- DateTimeStorage.cs
- BaseTreeIterator.cs
- FactoryId.cs
- UTF7Encoding.cs
- AllMembershipCondition.cs
- ProfileEventArgs.cs
- ObservableDictionary.cs
- Parser.cs
- XmlTypeMapping.cs
- InvokeProviderWrapper.cs
- BooleanProjectedSlot.cs
- WebPartVerb.cs
- Collection.cs
- DocumentApplication.cs
- ThrowHelper.cs
- NodeFunctions.cs
- ReaderWriterLock.cs
- ButtonChrome.cs
- ZoomPercentageConverter.cs
- DrawingVisual.cs
- ManagedWndProcTracker.cs
- TypeToken.cs
- GeneralTransform.cs
- __FastResourceComparer.cs
- ScrollEvent.cs
- PageParserFilter.cs
- PageHandlerFactory.cs
- BufferBuilder.cs
- DataObjectFieldAttribute.cs
- WebServiceEnumData.cs
- RoleManagerSection.cs
- TextTrailingWordEllipsis.cs
- UpdateEventArgs.cs
- ReverseQueryOperator.cs
- pingexception.cs
- ErrorItem.cs
- FixedSOMFixedBlock.cs
- WebPartUtil.cs
- ConvertEvent.cs
- configsystem.cs
- FacetValueContainer.cs
- DelegateTypeInfo.cs
- TextRangeProviderWrapper.cs
- Converter.cs
- FixedTextView.cs
- UserUseLicenseDictionaryLoader.cs
- localization.cs
- exports.cs
- ViewLoader.cs
- InputProcessorProfiles.cs
- DetailsViewUpdateEventArgs.cs
- ManagementExtension.cs
- _HTTPDateParse.cs
- TreeBuilderXamlTranslator.cs
- ObjectItemCollection.cs
- MULTI_QI.cs
- _Semaphore.cs
- EventArgs.cs
- WebPartZoneDesigner.cs
- QilTargetType.cs
- ReachPageContentSerializer.cs
- EntityDataSourceStatementEditor.cs
- ByteViewer.cs
- control.ime.cs
- NumberFormatter.cs
- WebPartHeaderCloseVerb.cs
- DiscoveryCallbackBehavior.cs
- DocumentViewerBaseAutomationPeer.cs
- SHA256Managed.cs
- ListMarkerLine.cs
- XappLauncher.cs
- ResourcesGenerator.cs
- RootBuilder.cs
- UIElementCollection.cs
- AttachedAnnotation.cs
- TreeNodeBinding.cs
- ProcessModuleDesigner.cs
- RouteTable.cs
- TreeView.cs
- FunctionMappingTranslator.cs
- MILUtilities.cs
- SQLString.cs
- UseLicense.cs
- MatrixAnimationUsingKeyFrames.cs
- WorkflowTransactionOptions.cs
- XmlIlTypeHelper.cs
- DataListItemCollection.cs
- XmlArrayItemAttributes.cs
- ItemContainerPattern.cs
- EntityReference.cs
- FtpWebResponse.cs