Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / DataWeb / Server / System / Data / Services / Providers / ResourceAssociationType.cs / 1305376 / ResourceAssociationType.cs
//---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Simple couple of classes to keep association descriptions // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Providers { using System.Diagnostics; using System.Collections.Generic; ////// Stores information about a association and its ends /// internal class ResourceAssociationType { ///FullName of the association. private readonly string fullName; ///Name of the association private readonly string name; ///end1 for this association. private readonly ResourceAssociationTypeEnd end1; ///end2 for this association. private readonly ResourceAssociationTypeEnd end2; ////// Creates a new instance of AssociationInfo to store information about an association. /// /// name of the association. /// namespaceName of the association. /// first end of the association. /// second end of the association. internal ResourceAssociationType(string name, string namespaceName, ResourceAssociationTypeEnd end1, ResourceAssociationTypeEnd end2) { Debug.Assert(!String.IsNullOrEmpty(name), "!String.IsNullOrEmpty(name)"); Debug.Assert(end1 != null && end2 != null, "end1 != null && end2 != null"); this.name = name; this.fullName = namespaceName + "." + name; this.end1 = end1; this.end2 = end2; } ///FullName of the association. internal string FullName { get { return this.fullName; } } ///Name of the association. internal string Name { get { return this.name; } } ///end1 for this association. internal ResourceAssociationTypeEnd End1 { get { return this.end1; } } ///end2 for this association. internal ResourceAssociationTypeEnd End2 { get { return this.end2; } } ////// Retrieve the end for the given resource set, type and property. /// /// resource type for the end /// resource property for the end ///Association type end for the given parameters internal ResourceAssociationTypeEnd GetResourceAssociationTypeEnd(ResourceType resourceType, ResourceProperty resourceProperty) { Debug.Assert(resourceType != null, "resourceType != null"); foreach (ResourceAssociationTypeEnd end in new[] { this.end1, this.end2 }) { if (end.ResourceType == resourceType && end.ResourceProperty == resourceProperty) { return end; } } return null; } ////// Retrieve the related end for the given resource set, type and property. /// /// resource type for the source end /// resource property for the source end ///Related association type end for the given parameters internal ResourceAssociationTypeEnd GetRelatedResourceAssociationSetEnd(ResourceType resourceType, ResourceProperty resourceProperty) { Debug.Assert(resourceType != null, "resourceType != null"); ResourceAssociationTypeEnd thisEnd = this.GetResourceAssociationTypeEnd(resourceType, resourceProperty); if (thisEnd != null) { foreach (ResourceAssociationTypeEnd end in new[] { this.end1, this.end2 }) { if (end != thisEnd) { return end; } } } return null; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------------- //// Copyright (c) Microsoft Corporation. All rights reserved. // //// Simple couple of classes to keep association descriptions // // // @owner [....] //--------------------------------------------------------------------- namespace System.Data.Services.Providers { using System.Diagnostics; using System.Collections.Generic; ////// Stores information about a association and its ends /// internal class ResourceAssociationType { ///FullName of the association. private readonly string fullName; ///Name of the association private readonly string name; ///end1 for this association. private readonly ResourceAssociationTypeEnd end1; ///end2 for this association. private readonly ResourceAssociationTypeEnd end2; ////// Creates a new instance of AssociationInfo to store information about an association. /// /// name of the association. /// namespaceName of the association. /// first end of the association. /// second end of the association. internal ResourceAssociationType(string name, string namespaceName, ResourceAssociationTypeEnd end1, ResourceAssociationTypeEnd end2) { Debug.Assert(!String.IsNullOrEmpty(name), "!String.IsNullOrEmpty(name)"); Debug.Assert(end1 != null && end2 != null, "end1 != null && end2 != null"); this.name = name; this.fullName = namespaceName + "." + name; this.end1 = end1; this.end2 = end2; } ///FullName of the association. internal string FullName { get { return this.fullName; } } ///Name of the association. internal string Name { get { return this.name; } } ///end1 for this association. internal ResourceAssociationTypeEnd End1 { get { return this.end1; } } ///end2 for this association. internal ResourceAssociationTypeEnd End2 { get { return this.end2; } } ////// Retrieve the end for the given resource set, type and property. /// /// resource type for the end /// resource property for the end ///Association type end for the given parameters internal ResourceAssociationTypeEnd GetResourceAssociationTypeEnd(ResourceType resourceType, ResourceProperty resourceProperty) { Debug.Assert(resourceType != null, "resourceType != null"); foreach (ResourceAssociationTypeEnd end in new[] { this.end1, this.end2 }) { if (end.ResourceType == resourceType && end.ResourceProperty == resourceProperty) { return end; } } return null; } ////// Retrieve the related end for the given resource set, type and property. /// /// resource type for the source end /// resource property for the source end ///Related association type end for the given parameters internal ResourceAssociationTypeEnd GetRelatedResourceAssociationSetEnd(ResourceType resourceType, ResourceProperty resourceProperty) { Debug.Assert(resourceType != null, "resourceType != null"); ResourceAssociationTypeEnd thisEnd = this.GetResourceAssociationTypeEnd(resourceType, resourceProperty); if (thisEnd != null) { foreach (ResourceAssociationTypeEnd end in new[] { this.end1, this.end2 }) { if (end != thisEnd) { return end; } } } return null; } } } // 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
- ToolStripGrip.cs
- RootNamespaceAttribute.cs
- MatrixTransform3D.cs
- Rijndael.cs
- ApplicationSettingsBase.cs
- FaultDescriptionCollection.cs
- LocalizedNameDescriptionPair.cs
- ServiceDescriptionReflector.cs
- ControlUtil.cs
- IndentedWriter.cs
- MgmtConfigurationRecord.cs
- AbandonedMutexException.cs
- MenuItemStyle.cs
- VScrollProperties.cs
- StringDictionary.cs
- DrawListViewSubItemEventArgs.cs
- WorkflowDurableInstance.cs
- QueuePathDialog.cs
- WebResourceUtil.cs
- ValueUnavailableException.cs
- ChtmlLinkAdapter.cs
- VariantWrapper.cs
- GridViewDeletedEventArgs.cs
- PrintDocument.cs
- Int32KeyFrameCollection.cs
- PropertyTabChangedEvent.cs
- NullRuntimeConfig.cs
- XmlTextReaderImpl.cs
- WebPartMovingEventArgs.cs
- CapabilitiesAssignment.cs
- SafeNativeMethods.cs
- ValidationResult.cs
- DocumentApplicationState.cs
- Freezable.cs
- MeshGeometry3D.cs
- ServiceRoute.cs
- DataTable.cs
- MetadataCacheItem.cs
- SpecialTypeDataContract.cs
- WorkflowInstance.cs
- ScrollProperties.cs
- BulletedListEventArgs.cs
- ValidatorAttribute.cs
- AffineTransform3D.cs
- UdpDiscoveryEndpointElement.cs
- RegexCompilationInfo.cs
- InvokeProviderWrapper.cs
- DocumentSignatureManager.cs
- Vector3DValueSerializer.cs
- SelectQueryOperator.cs
- ClipboardProcessor.cs
- FindRequestContext.cs
- LinkButton.cs
- HtmlContainerControl.cs
- DataContractAttribute.cs
- ListBoxItemAutomationPeer.cs
- ISAPIRuntime.cs
- DnsPermission.cs
- ByteStorage.cs
- XamlReaderHelper.cs
- DoubleLink.cs
- FixedSOMImage.cs
- DLinqColumnProvider.cs
- MailMessageEventArgs.cs
- ToolStripItemTextRenderEventArgs.cs
- CompilationAssemblyInstallComponent.cs
- TraversalRequest.cs
- ProjectionPlan.cs
- AuthenticationService.cs
- InternalCache.cs
- PeerOutputChannel.cs
- MultiBinding.cs
- ChtmlSelectionListAdapter.cs
- DirectionalLight.cs
- CodeTypeReferenceCollection.cs
- MemberAccessException.cs
- ChildDocumentBlock.cs
- EnvironmentPermission.cs
- ValidatingCollection.cs
- CrossAppDomainChannel.cs
- ScrollBarRenderer.cs
- PathGeometry.cs
- SynchronizationContext.cs
- GetMemberBinder.cs
- GridViewPageEventArgs.cs
- PageContentCollection.cs
- Soap12ServerProtocol.cs
- ManagedFilter.cs
- StringBuilder.cs
- Typeface.cs
- LambdaExpression.cs
- PointAnimation.cs
- CompositeKey.cs
- PagesSection.cs
- LogicalExpressionEditor.cs
- EraserBehavior.cs
- BinHexDecoder.cs
- SQLString.cs
- DataListCommandEventArgs.cs
- Visual3DCollection.cs