// <summary>
 // Initialize all the build in type with the given type attributes and properties
 // </summary>
 // <param name="builtInType"> The built In type which is getting initialized </param>
 // <param name="name"> name of the built in type </param>
 // <param name="isAbstract"> whether the type is abstract or not </param>
 // <param name="baseType"> The base type of the built in type </param>
 private static void InitializeBuiltInTypes(
     ComplexType builtInType,
     string name,
     bool isAbstract,
     ComplexType baseType)
 {
     // Initialize item attributes for all ancestor types
     EdmType.Initialize(builtInType, name, EdmConstants.EdmNamespace, DataSpace.CSpace, isAbstract, baseType);
 }
        private static void InitializeEnumType(
            BuiltInTypeKind builtInTypeKind,
            string name,
            string[] enumMemberNames)
        {
            EnumType builtInType = (EnumType)MetadataItem.GetBuiltInType(builtInTypeKind);

            EdmType.Initialize((EdmType)builtInType, name, "Edm", DataSpace.CSpace, false, (EdmType)null);
            for (int index = 0; index < enumMemberNames.Length; ++index)
            {
                builtInType.AddMember(new EnumMember(enumMemberNames[index], (object)index));
            }
        }
        // <summary>
        // Initializes the enum type
        // </summary>
        // <param name="builtInTypeKind"> The built-in type kind enum value of this enum type </param>
        // <param name="name"> The name of this enum type </param>
        // <param name="enumMemberNames"> The member names of this enum type </param>
        private static void InitializeEnumType(
            BuiltInTypeKind builtInTypeKind,
            string name,
            string[] enumMemberNames)
        {
            var enumType = (EnumType)GetBuiltInType(builtInTypeKind);

            // Initialize item attributes for all ancestor types
            EdmType.Initialize(
                enumType,
                name,
                EdmConstants.EdmNamespace,
                DataSpace.CSpace,
                false,
                null);

            for (var i = 0; i < enumMemberNames.Length; i++)
            {
                enumType.AddMember(new EnumMember(enumMemberNames[i], i));
            }
        }
 internal EdmType(string name, string namespaceName, DataSpace dataSpace)
 {
     Check.NotNull <string>(name, nameof(name));
     Check.NotNull <string>(namespaceName, nameof(namespaceName));
     EdmType.Initialize(this, name, namespaceName, dataSpace, false, (EdmType)null);
 }