Exemplo n.º 1
0
        private bool CheckForInheritanceCycle()
        {
            StructuredType baseType        = this.BaseType;
            StructuredType structuredType1 = baseType;
            StructuredType structuredType2 = baseType;

            do
            {
                structuredType2 = structuredType2.BaseType;
                if (object.ReferenceEquals((object)structuredType1, (object)structuredType2))
                {
                    return(true);
                }
                if (structuredType1 == null)
                {
                    return(false);
                }
                structuredType1 = structuredType1.BaseType;
                if (structuredType2 != null)
                {
                    structuredType2 = structuredType2.BaseType;
                }
            }while (structuredType2 != null);
            return(false);
        }
Exemplo n.º 2
0
        public bool IsOfType(StructuredType baseType)
        {
            StructuredType structuredType = this;

            while (structuredType != null && structuredType != baseType)
            {
                structuredType = structuredType.BaseType;
            }
            return(structuredType == baseType);
        }
Exemplo n.º 3
0
        /// <summary>
        ///     Determines whether this type is of the same type as baseType,
        ///     or is derived from baseType.
        /// </summary>
        /// <param name="baseType"> </param>
        /// <returns> true if this type is of the baseType, false otherwise </returns>
        public bool IsOfType(StructuredType baseType)
        {
            var type = this;

            while (type != null &&
                   type != baseType)
            {
                type = type.BaseType;
            }

            return(type == baseType);
        }
        /// <summary>
        /// </summary>
        internal override void Validate()
        {
            base.Validate();

            Debug.Assert(
                _fromEnd != null && _toEnd != null,
                "FromEnd and ToEnd must not be null in Validate. ResolveNames must have resolved it or added error");

            if (_fromEnd.Type != ParentElement)
            {
                AddError(
                    ErrorCode.BadNavigationProperty, EdmSchemaErrorSeverity.Error,
                    Strings.BadNavigationPropertyBadFromRoleType(
                        Name,
                        _fromEnd.Type.FQName, _fromEnd.Name, _relationship.FQName, ParentElement.FQName));
            }

            StructuredType type = _toEnd.Type;
        }
Exemplo n.º 5
0
 private StructuredType.HowDefined DefinesMemberName(
     string name,
     out StructuredType definingType,
     out SchemaElement definingMember)
 {
     if (this.NamedMembers.ContainsKey(name))
     {
         definingType   = this;
         definingMember = this.NamedMembers[name];
         return(StructuredType.HowDefined.AsMember);
     }
     definingMember = this.NamedMembers.LookUpEquivalentKey(name);
     if (!this.IsTypeHierarchyRoot)
     {
         return(this.BaseType.DefinesMemberName(name, out definingType, out definingMember));
     }
     definingType   = (StructuredType)null;
     definingMember = (SchemaElement)null;
     return(StructuredType.HowDefined.NotDefined);
 }
Exemplo n.º 6
0
        /// <summary>
        ///     See if a name is a member in a type or any of its base types
        /// </summary>
        /// <param name="name"> name to look for </param>
        /// <param name="definingType"> if defined, the type that defines it </param>
        /// <param name="definingMember"> if defined, the member that defines it </param>
        /// <returns> how name was defined </returns>
        private HowDefined DefinesMemberName(string name, out StructuredType definingType, out SchemaElement definingMember)
        {
            if (NamedMembers.ContainsKey(name))
            {
                definingType   = this;
                definingMember = NamedMembers[name];
                return(HowDefined.AsMember);
            }

            definingMember = NamedMembers.LookUpEquivalentKey(name);
            Debug.Assert(definingMember == null, "we allow the scenario that members can have same name but different cases");

            if (IsTypeHierarchyRoot)
            {
                definingType   = null;
                definingMember = null;
                return(HowDefined.NotDefined);
            }

            return(BaseType.DefinesMemberName(name, out definingType, out definingMember));
        }
        /// <summary>
        ///     See if a name is a member in a type or any of its base types
        /// </summary>
        /// <param name="name"> name to look for </param>
        /// <param name="definingType"> if defined, the type that defines it </param>
        /// <param name="definingMember"> if defined, the member that defines it </param>
        /// <returns> how name was defined </returns>
        private HowDefined DefinesMemberName(string name, out StructuredType definingType, out SchemaElement definingMember)
        {
            if (NamedMembers.ContainsKey(name))
            {
                definingType = this;
                definingMember = NamedMembers[name];
                return HowDefined.AsMember;
            }

            definingMember = NamedMembers.LookUpEquivalentKey(name);
            Debug.Assert(definingMember == null, "we allow the scenario that members can have same name but different cases");

            if (IsTypeHierarchyRoot)
            {
                definingType = null;
                definingMember = null;
                return HowDefined.NotDefined;
            }

            return BaseType.DefinesMemberName(name, out definingType, out definingMember);
        }
        /// <summary>
        ///     Determines whether this type is of the same type as baseType,
        ///     or is derived from baseType.
        /// </summary>
        /// <param name="baseType"> </param>
        /// <returns> true if this type is of the baseType, false otherwise </returns>
        public bool IsOfType(StructuredType baseType)
        {
            var type = this;

            while (type != null
                   && type != baseType)
            {
                type = type.BaseType;
            }

            return (type == baseType);
        }
        //private static System.Text.RegularExpressions.Regex _binaryValueValidator = new System.Text.RegularExpressions.Regex("0[xX][0-9a-fA-F]+");

        #endregion

        #region Public Methods

        /// <summary>
        /// </summary>
        /// <param name="parentElement"> </param>
        internal StructuredProperty(StructuredType parentElement)
            : base(parentElement)
        {
            _typeUsageBuilder = new TypeUsageBuilder(this);
        }
Exemplo n.º 10
0
 // <summary>
 // Creates a Property object
 // </summary>
 // <param name="parentElement"> The parent element </param>
 internal Property(StructuredType parentElement)
     : base(parentElement)
 {
 }
Exemplo n.º 11
0
 /// <summary>
 ///     Creates a Property object
 /// </summary>
 /// <param name="parentElement"> The parent element </param>
 internal Property(StructuredType parentElement)
     : base(parentElement)
 {
 }
Exemplo n.º 12
0
 internal Property(StructuredType parentElement)
     : base((SchemaElement)parentElement, (IDbDependencyResolver)null)
 {
 }
Exemplo n.º 13
0
 internal StructuredProperty(StructuredType parentElement)
     : base(parentElement)
 {
     this._typeUsageBuilder = new TypeUsageBuilder((SchemaElement)this);
 }
Exemplo n.º 14
0
        //private static System.Text.RegularExpressions.Regex _binaryValueValidator = new System.Text.RegularExpressions.Regex("0[xX][0-9a-fA-F]+");

        #endregion

        #region Public Methods

        internal StructuredProperty(StructuredType parentElement)
            : base(parentElement)
        {
            _typeUsageBuilder = new TypeUsageBuilder(this);
        }