Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / ndp / fx / src / DataEntity / System / Data / Mapping / basemetadatamappingvisitor.cs / 1 / 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
- HybridDictionary.cs
- GradientStopCollection.cs
- AffineTransform3D.cs
- RectAnimationClockResource.cs
- SoapSchemaImporter.cs
- SharedMemory.cs
- GridSplitterAutomationPeer.cs
- DynamicAttribute.cs
- MessageDescriptionCollection.cs
- FixedPageProcessor.cs
- CodeAttributeArgument.cs
- CryptoKeySecurity.cs
- CompositeActivityDesigner.cs
- GeometryGroup.cs
- RegexNode.cs
- EventLogSession.cs
- ObjectIDGenerator.cs
- WebDisplayNameAttribute.cs
- ReturnType.cs
- FloatMinMaxAggregationOperator.cs
- Configuration.cs
- Parsers.cs
- SqlDataSourceFilteringEventArgs.cs
- AutomationFocusChangedEventArgs.cs
- XmlSchemaSimpleType.cs
- MenuEventArgs.cs
- ConfigurationLoader.cs
- RuntimeResourceSet.cs
- Documentation.cs
- FormViewUpdatedEventArgs.cs
- NumberFunctions.cs
- AppDomainInfo.cs
- XsltException.cs
- EntityDataSourceSelectingEventArgs.cs
- ListBox.cs
- CollectionChangeEventArgs.cs
- MailDefinition.cs
- SyndicationDeserializer.cs
- BitmapFrame.cs
- ScriptControlManager.cs
- ProfileElement.cs
- RemotingSurrogateSelector.cs
- DataControlField.cs
- XXXOnTypeBuilderInstantiation.cs
- SystemPens.cs
- PeerTransportListenAddressValidatorAttribute.cs
- StructuredTypeEmitter.cs
- FixedDSBuilder.cs
- GridViewSortEventArgs.cs
- GridViewEditEventArgs.cs
- NamedObject.cs
- XmlNavigatorStack.cs
- ColumnWidthChangedEvent.cs
- DesigntimeLicenseContext.cs
- ElementAction.cs
- TypedAsyncResult.cs
- ListItemCollection.cs
- MenuItemBinding.cs
- SpecularMaterial.cs
- SizeConverter.cs
- XsdDuration.cs
- WebBrowsableAttribute.cs
- ActivityWithResultWrapper.cs
- CodeDelegateInvokeExpression.cs
- SelectedCellsCollection.cs
- ExternalException.cs
- ReachDocumentReferenceCollectionSerializer.cs
- SelectedGridItemChangedEvent.cs
- TimeSpanConverter.cs
- HttpHandlerAction.cs
- SchemaTableOptionalColumn.cs
- FixedBufferAttribute.cs
- XmlSerializerNamespaces.cs
- TextEditorCopyPaste.cs
- WinOEToolBoxItem.cs
- CodeSnippetCompileUnit.cs
- HttpRequestCacheValidator.cs
- QueryCursorEventArgs.cs
- XmlAutoDetectWriter.cs
- OleDragDropHandler.cs
- CodeDOMUtility.cs
- WebPartCloseVerb.cs
- SecurityDescriptor.cs
- SmtpReplyReader.cs
- WindowPattern.cs
- TextContainer.cs
- BordersPage.cs
- SeparatorAutomationPeer.cs
- MarkupWriter.cs
- MappingMetadataHelper.cs
- TextParaLineResult.cs
- PersonalizationProvider.cs
- DataControlButton.cs
- ConstraintConverter.cs
- ConstraintEnumerator.cs
- EditorPartChrome.cs
- EmptyEnumerator.cs
- LocalizationParserHooks.cs
- ReliabilityContractAttribute.cs
- HostedTransportConfigurationBase.cs