/// <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; }
/// <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); }
/// <summary> /// Creates a Property object /// </summary> /// <param name="parentElement"> The parent element </param> internal Property(StructuredType parentElement) : base(parentElement) { }
//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); }
/// <summary> /// Creates a Property object /// </summary> /// <param name="parentElement">The parent element</param> internal Property(StructuredType parentElement) : base(parentElement) { }