ResourceAssociationType.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / 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.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK