public ApiRelationship(IApiProperty apiProperty,
                               ApiRelationshipCardinality apiCardinality,
                               IApiTypeResolver apiRelatedTypeResolver)
        {
            Contract.Requires(apiProperty != null);
            Contract.Requires(apiRelatedTypeResolver != null);

            this.ApiProperty            = apiProperty;
            this.ApiCardinality         = apiCardinality;
            this.ApiRelatedTypeResolver = apiRelatedTypeResolver;
        }
        // PUBLIC CONSTRUCTORS //////////////////////////////////////////////
        #region Constructors
        public ApiRelationship(IApiProperty apiProperty,
                               ApiRelationshipCardinality apiCardinality,
                               IApiType apiRelatedType)
        {
            Contract.Requires(apiProperty != null);
            Contract.Requires(apiRelatedType != null);

            this.ApiProperty            = apiProperty;
            this.ApiCardinality         = apiCardinality;
            this.ApiRelatedTypeResolver = new ApiSimpleTypeResolver(apiRelatedType);
        }
        public static ApiRelationship CreateApiRelationship(IApiProperty apiProperty,
                                                            ApiRelationshipCardinality apiCardinality,
                                                            IApiTypeResolver apiRelatedTypeResolver)
        {
            Contract.Requires(apiProperty != null);

            var apiRelationship = new ApiRelationship(apiProperty,
                                                      apiCardinality,
                                                      apiRelatedTypeResolver);

            return(apiRelationship);
        }